Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Leere Zeilen löschen mit VBA

Leere Zeilen löschen mit VBA
05.10.2015 13:35:19
Kenji
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

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Leere Zeilen löschen mit VBA
05.10.2015 16:17:16
fcs
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

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

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Leere Zeilen in Excel und Word mit VBA löschen


Schritt-für-Schritt-Anleitung

Um leere Zeilen in Excel automatisch zu löschen, während Du Daten an ein Word-Dokument überträgst, kannst Du ein VBA-Makro verwenden. Hier ist eine einfache Anleitung, um dies umzusetzen:

  1. Öffne Excel und drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke auf Einfügen und wähle Modul.

  3. Kopiere den folgenden Code in das Modul:

    Sub prcTestFormfield_loeschen()
        Dim wdDoc As Object          'Word.Document
        Dim wdApp As Object          'Word.Application
        Set wdApp = CreateObject("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
  4. Passe den Code an: Ersetze "Text10" durch die Namen der Formulare, die Du in Deinem Word-Dokument hast.

  5. Führe das Makro aus: Schließe den VBA-Editor und führe das Makro über Entwicklertools > Makros aus.


Häufige Fehler und Lösungen

  • Fehler: "Word.Application nicht gefunden"

    • Stelle sicher, dass Microsoft Word auf Deinem Computer installiert ist und Du die richtige Referenz in den VBA-Optionen gesetzt hast.
  • Leere Zeilen bleiben bestehen

    • Überprüfe, ob die Formulare in Word tatsächlich leer sind. Der Code entfernt nur Formulare, die leer sind.
  • Makro funktioniert nicht

    • Achte darauf, dass Du das Makro in der richtigen Excel-Datei ausführst und dass die Verbindung zu Word korrekt hergestellt wurde.

Alternative Methoden

Wenn Du keine VBA-Makros verwenden möchtest, kannst Du auch manuell leere Zeilen in Excel löschen:

  1. Wähle den Bereich aus, in dem Du leere Zeilen löschen möchtest.
  2. Gehe zu Start > Suchen & Auswählen > Gehe zu Spezial.
  3. Wähle Leerzellen und klicke auf OK.
  4. Klicke mit der rechten Maustaste auf eine der markierten Zellen und wähle Zeile löschen.

Praktische Beispiele

Ein typisches Szenario für das Löschen von leeren Zeilen könnte sein, wenn Du eine Tabelle in Excel hast, die an ein Word-Dokument übergeben wird. Wenn einige Zeilen keine Daten enthalten, führt dies zu word leere zeilen löschen Problematiken. Verwende das oben genannte VBA-Skript, um leere Zeilen beim Übertragen zu entfernen.


Tipps für Profis

  • Verwende Kommentare im Code: Dies hilft Dir, die Logik Deines VBA-Codes besser zu verstehen und zu pflegen.
  • Testen in einer Kopie: Bevor Du das Makro in einer wichtigen Datei ausführst, teste es in einer Kopie Deiner Excel-Datei.
  • Automatisierung: Du kannst das Makro so einrichten, dass es bei bestimmten Ereignissen wie dem Öffnen der Datei automatisch ausgeführt wird.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass alle Formulare in Word erkannt werden? Stelle sicher, dass die Formulare korrekt benannt sind und die Namen im VBA-Code übereinstimmen.

2. Funktioniert das Skript auch in Excel 365? Ja, das VBA-Skript sollte in Excel 365 und anderen Versionen von Excel problemlos funktionieren.

3. Gibt es eine Möglichkeit, leere Zeilen in Word zu löschen? Ja, Du kannst das gleiche Konzept in Word verwenden, um leere Absätze zu entfernen. Verwende dazu die Such- und Ersetz-Funktion, um leere Absätze zu finden und zu löschen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige