Dienstag, 18. August 2015

Nach Seriendruck: leere Tabellenzeilen löschen

Sie erstellen mittels Seriendruckfunktion in Microsoft Word Rechnungen mit Adressen aus Excel, bestehend aus hundert Seiten. Die Daten in Excel sehen wie folgt aus:
Aus den in Spalten angeordneten Beträgen wollen Sie in Word nun eine Auflistung untereinander erstellen.
Dies kriegen Sie im Grundsatz ganz einfach hin, indem Sie in Word im Steuerdokument manuell eine Tabelle erstellen, und da rein die Seriendruckfelder einfügen. Die erste Seite sieht als Beispiel wie folgt aus:
Pro Adresse haben Sie eine Seite (in diesem Fall einen Abschnitt) mit dieser Tabelle (welche eben die Beträge untereinander auflistet), also hundert Tabellen.
Sie möchten nun das Dokument durchsehen und bei jeder Tabelle die Zeilen löschen, welche in der zweiten Spalte mit dem Betrag nichts drin haben.
Dies geht mit VBA recht elegant:
Sub pDelTableRows()
Dim vTable As Object
Dim i As Integer

For Each vTable In ActiveDocument.Tables
    For i = 1 To vTable.Rows.Count
        If vTable.Cell(i, 2).Range.Text = Chr(13) & Chr(7) Then
            vTable.Cell(i, 2).Row.Delete

            i = 1
        End If
    Next i
Next
End Sub

Nach dem Ausführen des Codes sollten sämtliche Tabellen um die Zeilen mit den leeren Beträgen "gekürzt" sein:

Keine Kommentare:

Kommentar veröffentlichen