Office: VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen

Helfe beim Thema VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen in Microsoft Word Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich habe eine Word-Vorlage mit Platzhaltern, in die ich mit VBA Daten aus einer Excel-Datei einfüge (in eine Excel-Zeile schreibe ich... Dieses Thema im Forum "Microsoft Word Hilfe" wurde erstellt von ChrisTian1, 29. Januar 2025.

  1. ChrisTian1 Neuer User

    VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen


    Hallo zusammen,

    ich habe eine Word-Vorlage mit Platzhaltern, in die ich mit VBA Daten aus einer Excel-Datei einfüge (in eine Excel-Zeile schreibe ich alle Daten für ein neues Word-Dokument). So weit funktioniert das schon ganz gut und ich habe mir damit die Erstellung einiger Dokumente auf der Arbeit erleichert.

    Jetzt habe ich ein Problem und komme nicht weiter: Zwei Platzhalter in der Word-Vorlage können u. U. länger als eine Zeile werden ("Kunde" und "Ort"). Ich möchte, dass nach diesen beiden Platzhaltern automatisch eine leere Zeile erzeugt wird, falls der jeweilige Text nicht länger als eine Zeile ist, damit der Rest des Dokuments immer auf derselben Stelle steht. Ich habe schon geschafft, dass nach einem von beiden Platzhaltern die leere Zeile eingefügt wird, aber noch nicht, dass es nach beiden passiert.

    Kann mir jemand von euch sagen, was ich an dem Code ändern muss oder ob das evtl. gar nicht geht (ich verwende Office 2021)? Oder kann man die Sache noch auf ganz andere Weise lösen?

    Hier der entsprechende Code-Ausschnitt (da ich keine Ahnung von VBA hatte, habe ich das mithilfe von ChatGPT erstellt):

    Code:
    With WordDoc.Content
        '.Find.Execute FindText:="{{Kunde}}", ReplaceWith:=ws.Cells(dataRow, 4).Value, Replace:=2
        .Find.Execute FindText:="{{Ort}}", ReplaceWith:=ws.Cells(dataRow, 5).Value, Replace:=2
                    
        With WordDoc.Content
            Dim findRange As Object
            Dim replacedText As String
            Dim paragraphHeight As Single
    
            If .Find.Execute(FindText:="{{Kunde}}") Then
                Set findRange = .Find.Parent
                replacedText = ws.Cells(dataRow, 4).Value
                findRange.Text = replacedText
              
                paragraphHeight = findRange.ParagraphFormat.LineSpacing
                If findRange.Characters.Count <= paragraphHeight Then
                    findRange.InsertParagraphAfter
                End If
            End If
      
            If .Find.Execute(FindText:="{{Ort}}") Then
                Set findRange = .Find.Parent
                replacedText = ws.Cells(dataRow, 5).Value
                findRange.Text = replacedText
              
                paragraphHeight = findRange.ParagraphFormat.LineSpacing
                If findRange.Characters.Count <= paragraphHeight Then
                    findRange.InsertParagraphAfter
                End If
            End If
        End With
    End With
     
    ChrisTian1, 29. Januar 2025
    #1
  2. Gerhard H
    Gerhard H Erfahrener User
    Hallo Christian,

    da hätte ich eine ganz andere Idee: Steck deine Platzhalter in eine Tabellenzelle, deren Höhe du so einrichtest, dass zwei Zeilen Text reinpassen. Dabei verwendest du die Option Genau. Dann ist es egal, ob der Inhalt ein- oder zweizeilig ist.

    Wenn du den Code trotzdem weiterverfolgen willst, lade bitte ein Musterdokument dazu hoch, damit man sieht, was für Platzhalter du verwendest und damit man den Code überhaupt testen kann.
     
    Gerhard H, 29. Januar 2025
    #2
    1 Person gefällt das.
  3. ChrisTian1 Neuer User
    Hallo Gerhard,

    vielen Dank für die Idee! Ich habe sie umgesetzt und sie funktioniert. Deswegen werde ich den Code nicht mehr weiterverfolgen.

    Ich hatte in der Anfangsphase, als ich die Word-Vorlage erstellt habe, auch an eine Tabelle gedacht. Aber dann klappte etwas nicht in Verbindung mit dem VBA-Code und ich habe angenommen, dass das nicht funktionieren wird.

    Vielen Dank nochmal!
     
    ChrisTian1, 29. Januar 2025
    #3
Thema:

VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen

Die Seite wird geladen...
  1. VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen - Similar Threads - VBA Platzhalter ersetzen

  2. VBA HTTP Post - Probleme JSON Payload

    in Microsoft Excel Hilfe
    VBA HTTP Post - Probleme JSON Payload: Moin, ich steh auf dem Schlauch.... Ich möchte mit VBA einen HTTP Post senden. Das klappt beim versenden OHNE Payload auch soweit auch ganz gut. Private Function http_post(url As String,...
  3. Kombinationsfeld in VBA auswerten

    in Microsoft Access Hilfe
    Kombinationsfeld in VBA auswerten: Guten Tag, ich habe ein VBA-Problem mit Kombinationsfeldern. Umfeld: Eine Tabelle A mit Namen incl. Adressen, indiziert (NamenID), keine doppelten Einträge möglich. Eine Tabelle B mit Rechnungen,...
  4. Download per VBA nicht aktuell

    in Microsoft Access Hilfe
    Download per VBA nicht aktuell: Hallo, ich nutze in VBA eine Download-Funktion, die mir die neueste Version meines Frontend downloaden soll. Der Download an sich funktioniert, doch leider wird eine alte Version gespeichert. Ich...
  5. Autofilter bei Zelländerung automatisch aktualisieren – ohne VBA

    in Microsoft Excel Hilfe
    Autofilter bei Zelländerung automatisch aktualisieren – ohne VBA: Hallo zusammen, ich habe eine Frage zur automatischen Aktualisierung von Autofilter-Ergebnissen in einer intelligenten Tabelle – und zwar ohne VBA. Ausgangssituation: Ich habe eine intelligente...
  6. Bereich mit VBA zusammenhalten

    in Microsoft Word Hilfe
    Bereich mit VBA zusammenhalten: Ich schreibe aus Access mit VBA Anschriften in ein Worddokument. Jede Anschrift soll zusammengehalten werdem, damit am Seitenende keine Anschrift getrennt wird. Wie muss ich vorgehen um eine...
  7. VBA - Platzhalter Namen im Folienmaster vergeben und auslesen

    in Microsoft PowerPoint Hilfe
    VBA - Platzhalter Namen im Folienmaster vergeben und auslesen: Hallo zusammen, ich habe eine Slide mit mehreren Text Platzhaltern und Bild Platzhaltern und versuche jedes einzelne nach seiner Bestimmung anzusprechen (Titel, Ersteller, Änderungsdatum und Bild...
  8. Formen in Platzhalter umwandeln?

    in Microsoft PowerPoint Hilfe
    Formen in Platzhalter umwandeln?: Hallo, Gibt es eine Möglichkeit, Formen in Bild-Platzhalter umzuwandeln? In Powerpoint finde ich dazu leider keine Möglichkeit... aber vielleicht mit nem Makro? Leider habe ich nur sehr wenig...
Schlagworte:
  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