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. Freigegebene Excel-Tabelle als Quelle für Seriendruck

    in Sonstiges
    Freigegebene Excel-Tabelle als Quelle für Seriendruck: Hallo, :) wir haben eine Excel-Tabelle, welche auf der Cloud liegt und bei Änderungen automatisch speichert. Es haben mehrere Personen Lese- und Schreibrechte und sobald jemand etwas abändert,...
  3. VBA: Kein "Undo" mehr möglich?

    in Microsoft Excel Hilfe
    VBA: Kein "Undo" mehr möglich?: Hallo, ich habe meine Bestell-Tabelle so abgeändert, dass einiges per Makro, bzw. mittels Buttons übertragen wird. Also zum Beispiel wird mit einem Klick auf den Button die Lieferadresse gleich...
  4. EINLADUNG Access-Stammtisch Hannover Nr. 63 LIVE am Mittwoch 19.11.2025

    in Microsoft Access Hilfe
    EINLADUNG Access-Stammtisch Hannover Nr. 63 LIVE am Mittwoch 19.11.2025: EINLADUNG zum Access-Stammtisch Hannover Nr. 63 LIVE Endlich ist es wieder soweit! Persönlicher Austausch bei Speis und Trank. Interessante Gespräche in netter Atmosphäre. Termin: Mittwoch,...
  5. VBA: Notizen in Zelle einfügen

    in Microsoft Excel Hilfe
    VBA: Notizen in Zelle einfügen: Hallo zusammen, ich möchte über cells(x,y).AddComment "Text" eine Notiz einfügen. Das funktioniert leider nur sehr unzuverlässig. Mal ist der Text in der Notiz, mal wird nur eine leere Notiz...
  6. ActiveX Steuerelemente nicht verfügbar im VBA Entwurfsmodus.

    in Microsoft Excel Hilfe
    ActiveX Steuerelemente nicht verfügbar im VBA Entwurfsmodus.: Guten Tag allerseits. Ich habe eine Excel-Anwendung (xlsm mit Macros), die auf einem Laptop Probleme macht. Auf allen anderen PC's läuft es perfekt, auf dem genannten Laptop scheitern Zugriffe auf...
  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