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. Per Hyperlink ausgeblendetes Blatt einblenden

    in Microsoft Excel Hilfe
    Per Hyperlink ausgeblendetes Blatt einblenden: Hola ins Forum, ich bräuchte mal wieder eure Hilfe. Ich habe ein Tabellenblatt das mir als Register dient und wo Hyperlinks eingefügt sind um auf das dazugehörige Blatt zu springen. Diese Blätter...
  3. Bilder über VBA Größe und DPI ändern für Webshop

    in Microsoft Excel Hilfe
    Bilder über VBA Größe und DPI ändern für Webshop: Hallo Excel Spezialisten, Ich habe mir eine recht aufwendige Tabelle gebastelt, aus der ich Daten für meinen Webshop generiere und in einer .csv bereitstelle. Es werden neue Preislisten...
  4. Erstellung eines Dynamischen Kalenders (ggf. VBA)

    in Microsoft Word Hilfe
    Erstellung eines Dynamischen Kalenders (ggf. VBA): Guten Morgen an Alle, ich hoffe, es geht euch soweit gut :) Ich wende mich heute an euch, weil ich gerade vollkommen verzweifle und irgendwie so ganz und garnicht weiterkomme und irgendwie...
  5. Teil des Zellinhaltes abfragen in VBA

    in Microsoft Excel Hilfe
    Teil des Zellinhaltes abfragen in VBA: Guten Tag, ich möchte in Zelle E1 den linken 4-stelligen Teil in Zelle A3 abfragen. Habs versucht mit IF (LEFT(R[2]C[-3],4) = "8396") then ... Else ... End If Wer kann...
  6. VBA Projekt - seltsames Verhalten auf zweitem Rechner

    in Microsoft Excel Hilfe
    VBA Projekt - seltsames Verhalten auf zweitem Rechner: Moin zusammen, ich habe als ehrenamtlicher Mitarbeiter für einige soziale Einrichtungen eine Dienstplandatei und Arbeitszeitnachweise erstellt. In den Dateien arbeiten diverse Makros - bisher...
  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