Leere Zeilen löschen mit VBA

Bild

Betrifft: Leere Zeilen löschen mit VBA
von: Kenji
Geschrieben am: 05.10.2015 13:35:19

Hallo zusammen,
ich habe ein Excel Dokument, in dem pro Zeile verschiedene Werte eingetragen werden. Diese Werte werden per Makro an eine .docm Word Vorlage gesendet und in Formfields dargestellt. Soweit klappt das alles.
Wenn allerdings nun in manchen Zellen in der Excel Datei kein Wert drin steht bleibt das dazugehörige Formfield in Word leer. Dabei entstehen unschöne leere Zeilen, die ich gerne automatisch (per Makro) entfernen lassen möchte.
Wenn ich im Excel Makro die entsprechenden Formfields per .delete Befehl löschen lasse sind zwar die Formfielder im Word Dokument weg, allerdings bleiben die unschönen leeren Zeilen. Wie bekomme ich diese weg?
Grüße
Kenji

Bild

Betrifft: AW: Leere Zeilen löschen mit VBA
von: fcs
Geschrieben am: 05.10.2015 16:17:16
Halo Kenji,
probiere es mal mit folgendem Konstrukt, das du dann bezüglich der Formfield Namen/Indexnummer an dein Worddokument anpassen musst.
Gruß
Franz

Sub prcTestFormfield_loeschen()
    Dim wdDoc As Object          'Word.Document
    Dim wdApp As Object          'Word.Application
    
    Set wdApp = Word.Application
    Set wdDoc = wdApp.ActiveDocument
    
    Call prcFormfield_mit_Absatz_loeschen(wdFormfield:=wdDoc.FormFields("Text10"))
End Sub
Sub prcFormfield_mit_Absatz_loeschen(wdFormfield As Object)
    'löscht in einem Worddokument ein Formularfeld wenn es leer ist _
            inklusive des kompletten Absatzes
    Dim wdRange As Object        'Word.Range
    If wdFormfield.Result = "" Then
        Set wdRange = wdFormfield.Range
        wdRange.Expand Unit:=4 '4 = wdParagraph
        wdRange.Delete
    End If
End Sub


Bild

Betrifft: AW: Leere Zeilen löschen mit VBA
von: Kenji
Geschrieben am: 05.10.2015 17:23:34
Perfekt funktioniert so wie ich das haben möchte. Danke dir vielmals.

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Leere Zeilen löschen mit VBA"