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. klickereignis eines dynamischen Button per vba auslösen

    in Microsoft Excel Hilfe
    klickereignis eines dynamischen Button per vba auslösen: Hallo, habe einen dynamisch erzeugten Button + Klasse, dies funktioniert, jetzt muß ich aber das Klickereignis dieses Button per VBA auslösen. wie kann ich diesen jetzt ansprechen, in der...
  3. Kann keinen VBA Kode eingeben

    in Microsoft Excel Hilfe
    Kann keinen VBA Kode eingeben: Hallo, ich habe eine Excel Datei bekommen in Format .xlsm. In Editor kann ich Formulare und Module anlegen und Kode einfügen und ausführen. Nun wollte ich Kode hinzufügen der direkt nach dem...
  4. VBA prüfen - eventuell Fehler

    in Microsoft Access Hilfe
    VBA prüfen - eventuell Fehler: Hallo Fachkräfte, hier ein VBA-Modul das einen Fehler enthalten soll. Case 2 wurde in 2022 geändert. In Case 3 , 4 oder ... soll auch noch ein Fehler sein. Wo genau was falsch ist und wie...
  5. VBA: Fehler 0x800a03ec beim Ribbon

    in Microsoft Excel Hilfe
    VBA: Fehler 0x800a03ec beim Ribbon: Hallo, ich habe eine Tabelle, die ich ohne Titelleiste anzeigen lassen möchte. Dazu habe ich mir zwei Makros geschrieben Sub AusBlenden() CommandBars("Worksheet Menu Bar").Enabled = False...
  6. Dateiname der aktuellen Datei als Variable

    in Sonstiges
    Dateiname der aktuellen Datei als Variable: Hallo in die Runde, kann ich unter VBA (Excel/Outlook) den Namen der aktuellen Datei auslesen und in einer Variable weiterverarbeiten? Danke im Voraus, Andreas
  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