Office: (Office 2016) Serienbriefzeilen ohne Inhalt immer ausblenden

Helfe beim Thema Serienbriefzeilen ohne Inhalt immer ausblenden in Microsoft Word Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich habe mich durch eure Beiträge durchgearbeitet und das Makro meinen Anforderungen angepasst - vielen Dank für eure "Vorlage".... Dieses Thema im Forum "Microsoft Word Hilfe" wurde erstellt von schubste, 9. Januar 2023.

  1. Stefan23 Neuer User

    Serienbriefzeilen ohne Inhalt immer ausblenden


    Hallo zusammen,

    ich habe mich durch eure Beiträge durchgearbeitet und das Makro meinen Anforderungen angepasst - vielen Dank für eure "Vorlage".
    Leider wird bei mir bei manchen Tabellen die Formatierung zerstört.
    Habt ihr eine Idee, an was es liegen könnte?
    Im Anhang einmal der Brief ohne mit einmal mit Ausführung des Makros.
    Schon die Tabellen auf den ersten beiden Seiten "stimmen" nicht, weil bei der 2. Seite die Spalten breiter sind.
    Auf der 3. Seite wird es ganz deutlich, weil es einen Zeilenumbruch gibt.

    Hat dafür jemand eine Idee?

    Makro:
    Code:
    Sub leereAnRaus()
    
    'CODE Mit Zahl 0 löschen
    
    Dim tabelle As Table
    Dim i As Long
    For Each tabelle In ActiveDocument.Tables
    
    
            'Nuller in der Spalte Menge identifizieren und Zeile ggf löschen
            For i = tabelle.Rows.Count - 6 To 1 Step -1
                If Left(tabelle.Cell(i, 1).Range.Text, Len(tabelle.Cell(i, 1).Range.Text) - 2) = "" Then
                    tabelle.Rows(i).Select
                    tabelle.Rows(i).Delete
                End If
                If tabelle.Rows.Count = 7 Then
                 tabelle.Rows(3).Select
                    tabelle.Rows(3).Delete
                End If
          
            Next i
    Next tabelle
    End Sub
    Die letzte if-Abfrage mit Rows.Count = 7 kann auch weg, aber auch dann tritt das Problem auf.

    Vielen Dank für eure Hinweise.
     
    Zuletzt bearbeitet: 29. August 2023
    Stefan23, 29. August 2023
    #16
  2. Gerhard H
    Gerhard H Erfahrener User
    Hallo Stefan,

    ich erkenn den Zusammenhang zwischen der Aufgabenstellung von damals und derjenigen von heute kaum wieder. Auch die Dokumente sehen ganz anders aus. Deshalb muss ich noch mal von vorn anfangen zu fragen:

    Wenn ich dein Makro durchlese, seh ich, dass du ganze Zeilen löschen willst, aber die Bedingung dafür kommt mir merkwürdig vor: Du prüfst mit If Left(tabelle.Cell(i, 1).Range.Text... die erste Spalte pro Zeile, und wenn die leer ist, löschst du die ganze Zeile. Da in der ersten Spalte aber nur sporadisch Zahlen stehen, werden die viele Zeilen gelöscht, ob sie in den anderen Zellen nun Einträge haben oder nicht. Wenn du das tatsächlich willst, ändere das Makro wie folgt:
    Code:
    Sub LoescheWennErsteZelleLeer()
    'Zeilen löschen, wenn die erste Spalte leer ist:
    
    Dim tabelle As Table
    Dim i As Long
        For Each tabelle In ActiveDocument.Tables
            For i = tabelle.Rows.Count - 6 To 1 Step -1
                If Len(tabelle.Cell(i, 1).Range) = 2 Then
                    tabelle.Rows(i).Delete
                End If
            Next i
    Next tabelle
    End Sub
    Wenn du aber nur komplett leere Zeilen löschen möchtest (wovon es in deinem Beispieldokument nur in der letzten Tabelle welche gibt), verwende folgendes Makro:
    Code:
    Sub LoescheWennGanzeZeileLeer()
    Dim tabelle As Table
    Dim anzSpalten As Long, anzZeichen As Long, i As Long
       
        For Each tabelle In ActiveDocument.Tables
            For i = tabelle.Rows.Count - 6 To 1 Step -1
                anzSpalten = tabelle.Columns.Count
                anzZeichen = (anzSpalten + 1) * 2
                    If Len(tabelle.Rows(i).Range) = anzZeichen Then
                        tabelle.Rows(i).Delete
                    End If
            Next i
    Next tabelle
    End Sub
    Was du mit dem Block vorhast, der auf Zeilenanzahl 7 prüft, musst du ggf. nochmal erklären. Ich vermute, dass der Block aus der Schleife raus muss. Ich hab ihn vorläufig mal ganz weggelassen.

    Änderungen der Spaltenbreite und Zeilenumbrüche können weder mit deinem noch mit den beiden hier vorgestellten Makros was zu tun haben
     
    Gerhard H, 29. August 2023
    #17
  3. Stefan23 Neuer User
    Hallo Gerhard,

    Danke, ja, das möchte ich tatsächlich so.

    Bzgl. der Reihenanzahl = 7.
    Im Prinzip habe ich eine Tabelle mit Monaten von 12 - 1 gemacht und in der ersten Spalte steht, wie viele Leute wie viele Monate im Jahr gearbeitet haben.
    "Normal" ist, dass z.B. 3x12 und 4x10 und 1x2 Monate gearbeitet wurde. Deswegen sind so viele Zeilen leer die ich dann anschließend löschen möchte.
    Dann soll am Ende die Summe der gearbeiteten Monate aufgeschrieben werden, also (3*12+4*10+1*2 )* Preis , anschließend noch die MwSt addiert und der Gesamtbetrag angezeigt werden. Das passiert in den letzten 5 Zeilen, aber das habe ich im Bsp. nicht komplett eingefügt.
    Wenn nach dem Löschen nur eine Zeile "übrig" bleibt, dann macht die Summe * Preis keinen Sinn, weil ja nur eine Zeile "aufaddiert" wird und deswegen möchte ich die Zeile, in der die Summe steht, löschen.
    Sämtliche Berechnungen werden in einer Exceltabelle ausgeführt.


    Und mir ist eigentlich klar, dass Änderungen der Spaltenbreite nichts mit dem Makro zu tun haben, aber es passiert leider doch, auch mit einer Version.

    Im Anhang habe ich in der obigen Datei "unbearbeitet" dein Makro ausgeführt. Bei mir wird die Spaltenbreite bei manchen Tabellen geändert, bei manchen nicht.
    Was passiert bei dir, wenn du dein Makro ausführst?

    Also Notlösung ist mir gerade eingefallen, dass man nachträglich die Spaltenbreite wieder per VBA setzen könnte ;)
     
    Stefan23, 30. August 2023
    #18
  4. Gerhard H
    Gerhard H Erfahrener User

    Serienbriefzeilen ohne Inhalt immer ausblenden

    Hallo stefan,

    ich habs nochmal probiert. Bei mir verschieben sich die Spalten nicht. Da ich mich jedoch dunkel erinnern kann, dass mir das auch schon mal passiert ist, würde ich einen Bug im Dokument nicht ausschließen.

    Vielleicht hilft es, jeder Tabelle vor der Schleife zum Löschen der Zeilen die Anpassen-Eigenschaft feste Spaltenbreite zu verpassen (tabelle.AutoFitBehavior wdAutoFitFixed)

    Oder - umständlicher aber vermutlich sicherer - du stellst vorab die Breiten der Tabellenspalten fest und weist sie danach wieder zu.
     
    Gerhard H, 30. August 2023
    #19
  5. Stefan23 Neuer User
    Hallo Gerhard,
    ich habe jetzt am Ende die Spaltenbreiten mittels VBA nachträglich geändert - funktioniert so auch. Später probiere ich deine Lsg. noch aus, dann wäre das auch für andere Spaltenbreiten anwendbar, falls sie sich wieder aus unerklärlichen Gründen, ändern.

    Vielen Dank und viele Grüße
    Stefan
     
    Stefan23, 30. August 2023
    #20
  6. Stefan23 Neuer User
    funktioniert einwandfrei - vielen Dank!
     
    Stefan23, 31. August 2023
    #21
Thema:

Serienbriefzeilen ohne Inhalt immer ausblenden

Die Seite wird geladen...
  1. Serienbriefzeilen ohne Inhalt immer ausblenden - Similar Threads - Serienbriefzeilen Inhalt ausblenden

  2. Tabellenkopfbezeichnungen in Abhängigkeit von Inhalt ausgeben

    in Microsoft Excel Hilfe
    Tabellenkopfbezeichnungen in Abhängigkeit von Inhalt ausgeben: Hallo! Ich habe folgende Aufgabe zu lösen… In einer Tabelle soll nach einem bestimmten Zeichenkette (NEU) gesucht werden. Sofern dieser Name NEU gefunden wird, soll der Spaltenname des...
  3. Auf die nächst mögliche Zelle mit Inhalt zugreifen

    in Microsoft Excel Hilfe
    Auf die nächst mögliche Zelle mit Inhalt zugreifen: Einen schönen Sonntag wünsche ich. Ich möchte mit folgendem Code auf die nächst mögliche Zelle mit einem Wert zurück greifen. Der Code nimmt aber immer den vorherigen Wert in der Zelle. Wenn die...
  4. Meldung in Word "Von Word wurde nicht lesbarer Inhalt gefunden"

    in Microsoft Word Hilfe
    Meldung in Word "Von Word wurde nicht lesbarer Inhalt gefunden": FrageMicrosoft Office Hallo, wir nutzen MS Office 365 und in einem speziell für uns programmierten Programm nutzen wir Word-Templates (.dotx). Mit dem vorherigen alten Office Paket (2016) war es...
  5. Zelle per VBA auf ihren Inhalt prüfen und reagieren sowie bei Änderung

    in Microsoft Excel Hilfe
    Zelle per VBA auf ihren Inhalt prüfen und reagieren sowie bei Änderung: Hallo zusammen, ich habe mit etwas verheddert und hoffe auf Eure Hilfe. Die Felder B111 und B112 sind zu Beginn LEER. B111 bietet ein Dropdown-Menü an, welches im Falle der Auswahl "Angebot mit...
  6. Prüfung unterschiedlicher Zellen auf Inhalt und Konsequenz

    in Microsoft Excel Hilfe
    Prüfung unterschiedlicher Zellen auf Inhalt und Konsequenz: Hallo zusammen, ich habe einen Code, bei dem ich mehrere voneinander getrennte Zellen auf Befüllung prüfe. Wenn ich mindestens eine nicht befülle, erscheint eine Fehlermeldung und das Script...
  7. nach Absturz + Neustart in Excel Textzeilen verschwunden

    in Microsoft Excel Hilfe
    nach Absturz + Neustart in Excel Textzeilen verschwunden: Hallo zusammen! Ich bitte um Hilfe bei folgendem Problem in Excel: Es gibt Excel Listen die mit Text gefüllt sind und nach einem Absturz und Neustart, bei dem das Programm nicht anders reagierte,...
  8. VBA: 2 Tabellenblätter Inhalte kopieren und in eine Excelmappe einfügen und als .xlsm speichern

    in Microsoft Excel Hilfe
    VBA: 2 Tabellenblätter Inhalte kopieren und in eine Excelmappe einfügen und als .xlsm speichern: Hallo Excel-Freaks, ich bin gerade mit einem Code beschäftigt und komme nicht weiter. Gewünscht wäre ein Makro: Zwei Tabellenblätter Inhalte kopieren und in eine Excelmappe einfügen und als .xlsm...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden