Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Word Textmarken von Excel Füllen

Word Textmarken von Excel Füllen
05.12.2019 13:54:22
Excel
Guten Tag,
ich habe ein Problem von einer Kollegin und weiß hier nicht weiter.
Es geht darum, dass aus Excel Daten in eine Word Vorlage übertragen werden. Hier werden bookmarks verwendet. So das funktioniert auch ohne Probleme. Nur erweitert sich die Bookmark nicht auf den eingefügten Text. Wenn ich nun mein UserForm öffne ist das Feld leer.
Im Word wird die Textmarke folgendermaßen aktualisiert.:

Dim BM As Bookmark
Dim rng As Range
If ActiveDocument.Bookmarks.Exists("ProjektNr") Then
Set BM = ActiveDocument.Bookmarks("ProjektNr")
Set rng = BM.Range
rng.Text = Me.TextBox1.Value
ActiveDocument.Bookmarks.Add Name:="ProjektNr", Range:=rng
End If
Ich weiß es ist nicht der beste/schönste Code, aber darum geht es jetzt nicht.
So nun habe ich versucht das Selbe in Excel umzusetzen, aber hier versagt der Code.

Dim BM As Bookmark
Dim rng As Range
Dim objWordApp As Object 'Word Anwendung
Dim objWordDoc As Object 'Word Dokument
'Word starten
Set objWordApp = CreateObject("Word.Application")
Set objWordDoc = objWordApp.Documents.Open( _
"DATEINAME") 'Hier ist ein internes Dokument verlinkt
objWordApp.Visible = True 'Word anzeigen
If ActiveDocument.Bookmarks.Exists("ProjektNr") Then
Set BM = objWordApp.ActiveDocument.Bookmarks("ProjektNr") 'Hier habe ich auch schon  _
objWordDoc versucht und jegliche kombination
Set rng = BM.Range 'Hier kommt immer der Fehler
rng.Text = Worksheets("Master Data").Range("F18")
objWordApp.ActiveDocument.Bookmarks.Add Name:="ProjektNr", Range:=rng
End If
Kann mir jemand helfen?
Viele Grüße
Daniel
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Word Textmarken von Excel Füllen
05.12.2019 14:40:48
Excel
Hallo Daniel,
kann man ohne Beispieldaten immer schwer nachvollziehen, aber ungetestet probier mal so:

With objWordDoc
If .Bookmarks.Exists("ProjektNr") Then
Set BM = .Bookmarks("ProjektNr")
Set rng = BM.Range 'Hier kommt immer der Fehler
rng.Text = "TEXT aus WS-F18" ' Worksheets("Master Data").Range("F18")
.Bookmarks.Add Name:="ProjektNr", Range:=rng
End If
End With

gruss
ede
Anzeige
AW: Word Textmarken von Excel Füllen
05.12.2019 15:25:55
Excel
Hi ede,
Vielen DANK! Es funktioniert :D
Werde mir das nochmal genau anschauen was da jetzt genau der unterschied ist!
Gruß
Daniel
AW: Word Textmarken von Excel Füllen
05.12.2019 15:27:58
Excel
ok, DAnke für die Rückmeldung, habe gerade nochmal einen zweiten Code bereitgestellt.
gruss
ede
AW: Word Textmarken von Excel Füllen
05.12.2019 15:38:19
Excel
Hi,
ich habe nochmal alles überprüft und mein einziger Fehler war, dass meine Variablen falsch definiert waren.
Dim rng As Range
muss
Dim rng As Word.Range
heißen, dann funktioniert auch mein Code ...
Vielen Dank nochmal, ich bin heute fast verzweifelt und dann ist es so ein Fehler.
Gruß
Daniel
Anzeige
AW: Word Textmarken von Excel Füllen
05.12.2019 15:26:28
Excel
Hallo nochmal,
hier mal mit getestetem Code...

Sub test()
Dim AppWord As Object
Dim BM As Word.Bookmark
Dim rng As Word.Range
Dim dateiname As String
'Fehlerbehandlung aktivieren
On Error Resume Next
'Word öffnen
Set AppWord = CreateObject("Word.application")
dateiname = "C:\temp\test1.docx"  'ANPASSEN
With AppWord
.Documents.Add dateiname
.Visible = True: .WindowState = xlMaximized
End With
With AppWord.ActiveDocument
If .Bookmarks.Exists("ProjektNr") Then
Set BM = .Bookmarks("ProjektNr")
Set rng = BM.Range 'Hier kommt immer der Fehler
rng.Text = Worksheets("Tabelle1").Range("A1") 'Worksheets("Master Data").Range("F18")
.Bookmarks.Add Name:="ProjektNr", Range:=rng
End If
End With
End Sub

Gruss
Ede
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Word Textmarken aus Excel Füllen


Schritt-für-Schritt-Anleitung

Um Daten aus Excel in Word-Textmarken zu füllen, befolge diese Schritte:

  1. Öffne Excel und erstelle ein VBA-Modul.

    • Gehe zu Entwicklertools > Visual Basic.
  2. Füge den folgenden Code in das Modul ein:

    Sub FuelleTextmarke()
       Dim AppWord As Object
       Dim BM As Object
       Dim rng As Object
       Dim dateiname As String
    
       'Word öffnen
       Set AppWord = CreateObject("Word.Application")
       dateiname = "C:\temp\deinedatei.docx" 'Pfad zur Word-Datei anpassen
       AppWord.Visible = True
    
       'Dokument öffnen
       With AppWord
           .Documents.Open dateiname
           If .ActiveDocument.Bookmarks.Exists("ProjektNr") Then
               Set BM = .ActiveDocument.Bookmarks("ProjektNr")
               Set rng = BM.Range
               rng.Text = Worksheets("Tabelle1").Range("A1") 'Daten aus Excel einfügen
               .ActiveDocument.Bookmarks.Add Name:="ProjektNr", Range:=rng
           End If
       End With
    End Sub
  3. Schließe den VBA-Editor und führe das Makro aus.

    • Drücke ALT + F8, wähle FuelleTextmarke und klicke auf Ausführen.

Häufige Fehler und Lösungen

  • Fehlermeldung: "Der Range ist ungültig."

    • Überprüfe, ob die Textmarke in Word existiert. Stelle sicher, dass der Name der Textmarke richtig geschrieben ist.
  • Excel-Daten werden nicht angezeigt.

    • Stelle sicher, dass der Pfad zur Word-Datei korrekt ist und dass die Excel-Zelle, die Du verwendest, Daten enthält.
  • Variablen falsch definiert.

    • Achte darauf, dass Dim rng As Range in Excel definiert wird. In Word sollte es Dim rng As Word.Range sein.

Alternative Methoden

Eine alternative Methode, um Word-Textmarken aus Excel zu füllen, ist die Verwendung von Word VBA direkt innerhalb von Word. Hier kannst Du ein Makro erstellen, das die Daten direkt abruft, ohne Excel zu öffnen.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie Du eine Excel-Textmarke in Word füllen kannst:

  • Excel-Daten: Angenommen, Du hast in Zelle A1 den Text "Projekt 123".
  • Word-Textmarke: Du hast eine Textmarke mit dem Namen "ProjektNr".

Der oben angegebene Code wird den Inhalt von Zelle A1 in die Textmarke "ProjektNr" in Word einfügen.


Tipps für Profis

  • Fehlerbehandlung: Verwende On Error Resume Next, um Fehler zu ignorieren und den Code reibungsloser auszuführen.
  • Variablen: Achte darauf, dass Du die richtigen Typen für Variablen verwendest, z.B. Dim rng As Word.Range für die Range-Objekte in Word.
  • Testen: Teste den Code mit verschiedenen Word-Dokumenten, um sicherzustellen, dass alles wie gewünscht funktioniert.

FAQ: Häufige Fragen

1. Wie füge ich eine Textmarke in Word ein? Um eine Textmarke in Word einzufügen, gehe zu Einfügen > Textmarke, gib einen Namen ein und klicke auf Hinzufügen.

2. Kann ich mehrere Textmarken gleichzeitig füllen? Ja, Du kannst mehrere Textmarken im gleichen Makro füllen, indem Du für jede Textmarke den entsprechenden Code wiederholst.

3. Welche Excel-Version benötige ich? Der Code funktioniert in Excel 2010 und neueren Versionen, die VBA unterstützen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige