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 - Ausblenden aller Tabellenblätter außer X

    in Microsoft Excel Hilfe
    VBA - Ausblenden aller Tabellenblätter außer X: Guten Morgen, ich bin ziemlicher VBA Neuling und habe aktuell Probleme mit einer Datei, die ich entwickelt habe. Zu der Datei: Es handelt sich um Daten, auf die lediglich ein bestimmter...
  3. Kamera in Excel einbinden und per vba Fotos erstellen

    in Microsoft Excel Hilfe
    Kamera in Excel einbinden und per vba Fotos erstellen: Kamera in Excel einbinden Hallo, ich suche einen Code für eine UserForm, mit der ich die integrierte Kamera des WinPC in der UserForm anzeigen lassen kann und davon ein Bild sichern kann.
  4. Liste aller Comboboxen im Sheet

    in Microsoft Excel Hilfe
    Liste aller Comboboxen im Sheet: Hallo allerseits, Ich möchte alle Comboboxen eines Worksheets mit VBA auslesen und finde nicht den Namen der Liste in den Sheet-Eigenschaften, in der die Comboboxen gespeichert sind. Wer weiß, wo...
  5. Pivot Tabelle: Quelle per VBA verändern

    in Microsoft Excel Hilfe
    Pivot Tabelle: Quelle per VBA verändern: Hi all, gibt es eine Möglichkeit, wie ich die Quelle einer Pivot Tabelle mit einem Klick aktualisieren kann? 1) Beispiel Quelle: [Datum_Dateiname.xlsx]Tabelle1!$A:$AA 2) Beispiel wie es je nach...
  6. Auswertung aus mehreren Registern erstellen (nur die Gelbmarkierten oder mit Datum von akt. Woche)

    in Microsoft Excel Hilfe
    Auswertung aus mehreren Registern erstellen (nur die Gelbmarkierten oder mit Datum von akt. Woche): Hallo zusammen, ich arbeite mit einer Excel-Arbeitsmappe, die mehrere Tabellenblätter enthält. Jedes Blatt dokumentiert bestimmte Vorgänge, und die Struktur der Daten ist in allen Blättern...
  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