Office: im Serienbrief tabellenzeile ausblenden

Helfe beim Thema im Serienbrief tabellenzeile ausblenden in Microsoft Word Hilfe um das Problem gemeinsam zu lösen; Hallo, kann man im Serienbrief Tabellenzeilen ausblenden wenn diese leer sind? Sprich muss in manchen Rechnungen benötige ich mehr... Dieses Thema im Forum "Microsoft Word Hilfe" wurde erstellt von doubleo, 28. Mai 2007.

  1. doubleo Erfahrener User

    im Serienbrief tabellenzeile ausblenden


    Hallo,

    kann man im Serienbrief Tabellenzeilen ausblenden wenn diese leer sind?

    Sprich muss in manchen Rechnungen benötige ich mehr Rechnungszeilen. Diese Zeilen sollen aber nicht leer bei den anderen Rechnungen auftauchen.
     
    doubleo, 28. Mai 2007
    #1
  2. freaky
    freaky Erfahrener User
    Hi,

    Du hast ja jetzt einige Fragen zu Serienbriefe gestellt. Vielleicht schaust du Dir mal diese Seite an:

    http://mypage.bluewin.ch/reprobst/FrmSet.htm?MMInhalt

    Dort kannst du mal ein bischen stöbern udn findest bestimmt die eine oder andere Antwort. Oder vielleicht sogar neu Ideen für Lösungen...

    Aber noch was zu diesen Geschichten:
    Du kannst diese Sachen alles in dein mdb machen. Wenn Du Access als Datenquelle hast, kannst du dort eine Abfrage erstellen und alle Bedingungen angeben - dann kommen die Daten auch entsprechend gefiltert in Word an.

    Du kannst aber auch in Word mit VBA die Verbindung zur Datenquelle herstellen und dann mit einem SQL-String arbeiten...

    PS: auch hier kannst du ggf. etwas zu Serieenbreifen und Feldern in Word finden:
    http://www.Wordwelt.de
     
    freaky, 29. Mai 2007
    #2
  3. RZ1973 Neuer User
    Hallo,
    kann man im Serienbrief ganze Tabellenzeilen ausblenden wenn diese leer sind?
     
  4. Gerhard H
    Gerhard H Erfahrener User

    im Serienbrief tabellenzeile ausblenden

    Hallo ,

    in einem Word-Serienbrief werden Absätze, in denen Seriendruckfelder stehen, die einen Leerstring ergeben, automatisch ausgeblendet. Tabellenzeilen können aber nicht automatisch ausgeblendet werden.

    Das bedeutet für dich: Entweder auf Tabellen verzichten und nur mit Absätzen arbeiten, oder die resultierenden Tabellen nachträglich bearbeiten, evtl. unter Einsatz von VBA.

    Näheres kann man vielleicht sagen, wenn du mehr Infos lieferst:
    • Die Tabellenzeilen sind leer, weil in ihnen nichts steht?
    • Oder sie sind leer, weil die Seriendruckfelder in den Zeilen leer ergeben?
    • Handelt es sich um eine einspaltige oder mehrspaltige Tabelle?
    • Ein oder mehrere Seriendruckfelder pro Zelle /Zeile?

    Am besten lädst du ein Muster deines Seriendruck-Hauptdokuments hoch, dann kann man was überlegen.
     
    Gerhard H, 14. September 2023
    #4
  5. RZ1973 Neuer User
    Hallo Gerhard,

    Danke vorab mal für deine rasche Rückmeldung!
    1.Es sollten die zwei Zeilen die Gelb markiert sind, dann ausgeblendet werden wenn keine Mwst. drinnen steht.
    2.Beim Feld HR Nr. das Feld das Rot markiert ist, sollte 44/2 stehen, es wird allerdings 0 angezeigt.
    Vielleicht lässt sich da was machen!
    Danke schon im Voraus.
    Habe die Dateien hochgeladen.

    LG. RZ1973
     
  6. czil hat Ahnung
    Das rote Feld wird bei mir korrekt übertragen, kann aber damit zusammenhängen, dass bei dir das als Bruch gedeutet wird. Würde ich in Excel lösen indem ich das in einer Hilfszelle mit der =TEXT()-Funktion in echten Text umwandle.
    Aber, die entscheidende Frage: warum wird denn bei der Rechnung die MWSt einmal ausgewiesen und einmal nicht?

    Ansonsten kannst du mal das hier versuchen.
    Zuerst gehst du im SB auf die Funktion "Fertigstellen und Zusammenführen/Einzelne Dokumente bearbeiten", da bekommst du dann für jeden Datensatz ein eigenes Dokument.
    Das muss das aktive sein, dann kannst du dieses Makro hier mal ausprobieren:
    PHP:
    Sub zeilenWeg()
    Dim dd1 As DocumentSet dd1 ActiveDocument
    Dim tab01 
    As TableAs Long
    Dim strA 
    As String
     
    For 1 To dd1.Tables.Count
     Set tab01 
    dd1.Tables(i)
       If 
    InStr(tab01.Cell(54).Range.Text"Nettoentgelt") = 0 Then
        tab01
    .Rows(6).Delete
        tab01
    .Rows(5).Delete
       End 
    If
     
    Next i
    End Sub
     
  7. Gerhard H
    Gerhard H Erfahrener User
    Auch bei mir wird das rote Feld korrekt übertragen. Vielleicht hilft es auch, die Mappe, die ja im Kompatibilitätsmodus läuft, zu konvertieren (Datei > Informationen). Das soll ja manchmal Wunder wirken.
     
    Gerhard H, 14. September 2023
    #7
  8. RZ1973 Neuer User

    im Serienbrief tabellenzeile ausblenden

    Hallo Gerhard,
    Die Datei habe ich konvertiert, hat alleine nichts genutzt. Doch wenn die ganze Spalte Hausnummer mit dem Format "Text" formatiert ist, funktioniert es perfekt. Es klappt auch wenn der 1. Eintrag auf " Text" und der Rest mit "Standart" formatiert ist, würde es auch klappen. Also habe ich alles auf "Text" formatiert und nun ist alles Bestens!

    Danke für deine Bemühungen!

    LG
     
  9. RZ1973 Neuer User
    Hallo Czil,

    Ich habe dein Makro probiert, es funktioniert soweit schon.
    Nur in Verbindung mit meinem Makro, das ich die Rechnungen als pdf abspeichere bekomme ich nicht hin.
    Man müsste vielleicht deine Makrozeilen in mein Makro integrieren.
    Das schaffe ich allerdings nicht.
    Also werde ich damit leben müssen, das die leeren Zeilen stehen bleiben.

    Danke für deine Bemühungen!

    LG
     
  10. Gerhard H
    Gerhard H Erfahrener User
    Hallo RZ,

    ich hege durchaus Hoffnung, dass man czils Makro in deines intgrieren kann. Gewissheit könnte daraus werden, wenn du es mal herzeigst.
     
    Gerhard H, 19. September 2023
    #10
  11. czil hat Ahnung
    OK, das ist dann ja eine ganz andere Voraussetzung. Denn du kannst im SBDokument nichts ausblenden was dann nicht auf alle Dokumente durchschlägt. Das geht nur in der Einzeldokumentbearbetung.
    Da die Pdf-Speicherdinger aber im Regelfall diese nutzen, muss man das halt da in den Code mit einbauen. Das ist nur die Frage der richtigen Stelle.
    Hier hat es Gerhard schon gesagt: her mit dem Makro, dann geht das einfacher zu beurteilen.
    (Btw, verstehe ich den Grund für ein Makro zum speichern als pdf nicht so ganz, aber das scheint ein beliebtes Hobby zu sein)
     
  12. RZ1973 Neuer User
    Hallo Gerhard, Hallo czil,

    Das wäre das Makro.
    LG

    Option Explicit

    Sub PDFSpeichern()
    '
    ' PDFSpeichern Makro
    '
    '
    '
    '
    ' set variables
    Dim iBrief As Integer, sBrief As String
    Dim AppShell As Object
    Dim BrowseDir As Variant
    Dim Path As String
    ' catch any errors
    On Error GoTo ErrorHandling

    ' determine path
    Set AppShell = CreateObject("Shell.Application")
    Set BrowseDir = AppShell.BrowseForFolder(0, "Speicherort für Serienbriefe auswählen", 0, 16)

    If BrowseDir = "Desktop" Then
    Path = CreateObject("WScript.Shell").SpecialFolders("Desktop")
    Else
    Path = BrowseDir.items().Item().Path
    End If

    If Path = "" Then GoTo ErrorHandling

    Path = Path & "\WG Rechnungen-" & Format(Now, "dd.mm.yyyy-hh.mm.ss") & "\"
    MkDir Path


    On Error GoTo ErrorHandling

    ' hide application for better performance
    MsgBox "Serienbriefe werden exportiert. Dieser Vorganag kann einige Minuten dauern - Microsoft Word wird während dieser Zeit ausgeblendet", vbOKOnly + vbInformation
    Application.Visible = False

    ' create bulkletter and export as pdf
    With ActiveDocument.MailMerge
    .DataSource.ActiveRecord = 1
    Do
    .Destination = wdSendToNewDocument
    .SuppressBlankLines = True
    With .DataSource
    .FirstRecord = .ActiveRecord
    .LastRecord = .ActiveRecord

    sBrief = Path & .DataFields("Name").Value & "_Re.Nr." & .DataFields("RE").Value & Format("_2024") & ".pdf"
    End With
    .Execute Pause:=False

    If .DataSource.DataFields("Name").Value > "" Then
    ActiveDocument.SaveAs FileName:=sBrief, FileFormat:=wdFormatPDF
    End If
    ActiveDocument.Close False

    If .DataSource.ActiveRecord < .DataSource.RecordCount Then
    .DataSource.ActiveRecord = wdNextRecord
    Else
    Exit Do
    End If
    Loop
    End With

    ' error handling
    ErrorHandling:
    Application.Visible = True

    If Err.Number = 76 Then
    MsgBox "Der ausgewählte Speicherort ist ungültig", vbOKOnly + vbCritical
    ElseIf Err.Number = 5852 Then
    MsgBox "Das Dokument ist kein Serienbrief"
    ElseIf Err.Number = 4198 Then
    MsgBox "Der ausgewählte Speicherort ist ungültig", vbOKOnly + vbCritical
    ElseIf Err.Number = 91 Then
    MsgBox "Exportieren von Serienbriefen abgebrochen", vbOKOnly + vbExclamation
    ElseIf Err.Number > 0 Then
    MsgBox "Unbekannter Fehler: " & Err.Number & " - Bitte Makro erneut ausführen.", vbOKOnly + vbCritical
    Else
    MsgBox "Serienbriefe erfolgreich exportiert", vbOKOnly + vbInformation
    End If

    End Sub
     
  13. Gerhard H
    Gerhard H Erfahrener User

    im Serienbrief tabellenzeile ausblenden

    Hallo RZ,

    hier ein Vorschlag zur Integration beider Makros:
    Code:
    Sub PDFSpeichern()
    
    ' set variables
    Dim hauptDoc As Document, tempDoc As Document
    Dim anzahlDS As Long, i As Long
    Dim BasisPfad As String, path As String, sBrief As String
    
    
    ' catch any errors
    On Error GoTo ErrorHandling
    
    Set hauptDoc = ThisDocument 'das ist dein Seriendruck-Hauptdokument
    
    ' determine path
    BasisPfad = "C:\1temp\rz1973\" '<--*****Anpassen
    path = BasisPfad & "WG Rechnungen-" & Format(Now, "dd.mm.yyyy-hh.mm.ss") & "\"
    MkDir path
    ' hide application for better performance
    'MsgBox "Serienbriefe werden exportiert. Dieser Vorganag kann einige Minuten dauern - Microsoft Word wird während dieser Zeit ausgeblendet", vbOKOnly + vbInformation
    'Application.Visible = False
    
        ' create bulkletter and export as pdf
        With ThisDocument.MailMerge
     
          'erst mal schauen, ob das Dokument mit der Datenquelle verknüpft ist:
          If .MainDocumentType = wdNotAMergeDocument Then
               MsgBox "Das Dokument ist noch nicht mit einer Seriendruckquelle verbunden."
               Exit Sub
            End If
    
            'Prüfen, ob Datensätze vorhanden sind:
            .DataSource.ActiveRecord = wdLastDataSourceRecord
            anzahlDS = .DataSource.ActiveRecord
                If anzahlDS = 0 Then
                    MsgBox "Es wurden keine Datensätze gefunden."
                    Exit Sub
                End If
           
            'pro Datensatz 1 PDF erzeugen:
            .DataSource.ActiveRecord = 1
            .Destination = wdSendToNewDocument
           
                For i = 1 To anzahlDS
                    .DataSource.ActiveRecord = i
               
                     .DataSource.FirstRecord = i
                    .DataSource.LastRecord = i
                    .Execute
                    Set tempDoc = ActiveDocument
                                               
                    'im temporären Dokument leere Tabellenzeilen löschen:
                    Call bereinige(tempDoc)
                                                                           
                    'Dokument unter dem gewünschten Namen als PDF speichern und tempDoc löschen:
                    sBrief = path & .DataSource.DataFields("Name").Value & "_Re.Nr." & _
                    .DataSource.DataFields("RE").Value & "_2024.pdf"
                    MsgBox sBrief
                    tempDoc.ExportAsFixedFormat outputfilename:=sBrief, exportformat:=wdExportFormatPDF
                    tempDoc.Close savechanges:=False
                Next i
            End With
    Exit Sub
    
    ErrorHandling:
    Application.Visible = True
    MsgBox Err.Number & Err.Description
    End Sub
    
    Sub bereinige(dd1)
    Dim tab01 As Table
    
    Set tab01 = dd1.Tables(1)
        If InStr(tab01.Cell(5, 4).Range.Text, "Nettoentgelt") = 0 Then
            tab01.Rows(6).Delete
            tab01.Rows(5).Delete
        End If
    End Sub
    Hinweise:
    • Da ich das Gehubere mit BrowseDir etc nicht mag, und es auch merkwürdig finde, dass die Erfolgsmeldung im Errorhandling erscheint, hab ich, was das Speichern der Dokumente als PDF betrifft, meinen eigenen Stiefel geritten.
    • Die noch nötigen Überreste von czils Makro finden sich in der Sub bereinigen().
    • Es wird davon ausgegangen, dass es pro Adressat (= pro erzeugten PDF) nur 1 Tabelle gibt, deren Struktur dem Musterdokument entspricht.
    • Die Meldung wg Ausblenden des Hauptdokuments hab ich auskommentiert, weil ich während der Testphase gern zusehe, was passiert. Kannst ja später wieder aktivieren.
    • Die beiden Makros müssen im Zum Testen die Makros im Hauptdokument aus Beitrag #5 untergebracht werden.
     
    Gerhard H, 20. September 2023
    #13
  14. RZ1973 Neuer User
    Hallo Gerhard,

    Ich bekomme immer die Fehlermeldung:
    "Das Dokument ist noch nicht mit einer Seriendruckquelle verbunden."
    Die Daten kommen aber richtig in den Serienbrief.

    Was kann es da haben? Mache ich da womöglich was falsch?

    LG. RZ
     
  15. Gerhard H
    Gerhard H Erfahrener User
    Hallo RZ,

    da ist erstens ein Fehler von mir: ich hab oben definiert:
    Set hauptDoc = ThisDocument,

    dann sollte weiter unten auch stehen:
    With hauptDoc.MailMerge (statt with ThisDocument.Mailmerge). Dieser Fehler sollte allerdings folgenlos bleiben, da ja hauptDoc und ThisDocument aufs gleiche Dokument verweisen, es sei denn...

    ...das zweitens das Makro nicht im Seriendruck-Hauptdokument untergebracht ist, sondern sonstwo (vielleicht in deiner Normal.dotm?. Dann würde ThisDocument auf dieses Dokument verweisen, was ja tatsächlich keine Seriendruck-Hauptdokument wäre.

    Was anderes fällt mir grad nicht ein. Ich häng dir mal das Dokument mit dem Makro drin an (gezippt, da hier Dokumente mit Makros nicht erlaubt sind). Es produziert bei mir diesen Fehler nicht.
     
    Gerhard H, 21. September 2023
    #15
Thema:

im Serienbrief tabellenzeile ausblenden

Die Seite wird geladen...
  1. im Serienbrief tabellenzeile ausblenden - Similar Threads - Serienbrief tabellenzeile ausblenden

  2. Serienbrief, Datum plus 7 Tage

    in Microsoft Word Hilfe
    Serienbrief, Datum plus 7 Tage: Hallo, ich wollte gerne in meinem Serienbrief um eine Rückantwort mit Datum bitten. Die Rückantwort soll 7 Tage nach dem aktuellen Datum erfolgen. Ich habe dazu folgendes gemacht: [ATTACH] Mein...
  3. Serien-Email mit Anhang realisieren

    in Microsoft Outlook Hilfe
    Serien-Email mit Anhang realisieren: Hallo, wir müssen jedes Jahr eine Email mit unserer aktuellen Preisliste an über 300 Kunden versenden. Dazu können wir leider nur Outlook verwenden. Bisher haben wir es immer so gemacht, dass...
  4. Rabat Codes in einen Serienbrief einfügen

    in Microsoft Word Hilfe
    Rabat Codes in einen Serienbrief einfügen: Hi, Ich möchte bei einem Brief für meine Kunden eine Rabatcode einfügen. Diese sind zufällig erstellt und in Excel als Tabelle gespeichert. Wie bekomme ich diese nun so eingefügt das auf jedem...
  5. Serienbrief IF, OR und Compare

    in Microsoft Word Hilfe
    Serienbrief IF, OR und Compare: Guten Morgen, ich habe einen Serienbrief, beim in einer Wenn-Dann-Bedingung ein ODER notwendig ist. Etwas vereinfacht soll, wenn einer der beiden Namen vorkommt, ein anderer Brief erstellt werden....
  6. Serienbrief mit Schnellbausteine

    in Microsoft Word Hilfe
    Serienbrief mit Schnellbausteine: Liebe Community, ich bitte um eure Hilfe bei einem kleinen Problem. Ich möchte in einem Seriendokument auf Schnellbausteine zu greifen. Ich habe ein Exceldatenquelle. Dort gibt es ein Spalte die...
  7. Serienbrief aus mehreren Datensätze

    in Microsoft Excel Hilfe
    Serienbrief aus mehreren Datensätze: Hallo ich benötige Hilfe bei der Erstellung eines Serienbriefes aus eine Excel Tabelle. Hintergrund ist, ich habe ein Excel Tabelle aus Teams Schichten exportiert. Hier wird aus jedem Eintrag ein...
  8. Dateien vorab auf Serienbrief überprüfen

    in Microsoft Word Hilfe
    Dateien vorab auf Serienbrief überprüfen: Hallo, ich habe eine größere Menge an u.a. Word- Dateien zu verschieben. Ich habe diese Dateien nicht erstellt. Kann ich im Vorfeld überprüfen, ob es sich um Dateien mit Serienbrieffunktion...
  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