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

Datenübertrag nach Word löscht Textmarken

Forumthread: Datenübertrag nach Word löscht Textmarken

Datenübertrag nach Word löscht Textmarken
09.11.2017 10:14:49
Nico
Hallo zusammen!
Ich habe folgendes Problem und hoffe, ihr könnt mir helfen:
Ich möchte einen VBA-basierten Datenübertrag von Excel nach Word bauen. Leider sind meine VBA-Kenntnisse - vorsichtig gesagt - ausbaufähig. Ich bin allerdings mittlerweile soweit, dass das Makro tut was ich will - zumindest meistens. :-)
Ich habe in Word Textmarken gesetzt, um die Anfangs- und Endpunkte für den Übertrag eines Zellwerts aus Excel zu definieren. Mein Makro soll erst die ggf. zwischen diesen Textmarken vorhandenen "alten" Daten löschen und dann in einem zweiten Schritt die "neuen" Daten an diese Stelle übertragen.
Hier der entsprechende Auszug aus dem Code:
If objDocument.Bookmarks.Exists(strBookmark3) And objDocument.Bookmarks.Exists(strBookmark4) Then
'Alten Text löschen
objDocument.Range(Start:=objDocument.Bookmarks(strBookmark3).Range.Start, _
End:=objDocument.Bookmarks(strBookmark4).Range.End).Select
objApp.Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=1
objApp.Selection.Delete
'Schreibe den Wert in die Textmarke Name
objDocument.Bookmarks(strBookmark3).Range = .Cells(3, 4).Text
objDocument.Range(Start:=objDocument.Bookmarks(strBookmark3).Range.Start, _
End:=objDocument.Bookmarks(strBookmark4).Range.End).Select
objDocument.Bookmarks(strBookmark4).Select
objApp.Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=1
objApp.Selection.Delete
Else
MsgBox ("Textmarken nicht gesetzt - Info 1")
End If

Wie gesagt klappt das soweit alles ...
Allerdings habe ich immer dann ein Problem, wenn zwischen den Textmarken als Alttext nur ein einziges Zeichen, z.B. eine "4" stand. Wenn diese gelöscht wird, dann werden direkt auch meine Textmarken gelöscht sowie alles, was sonst noch so in dieser Zeile steht und die neuen Infos werden nicht übertragen.
Habt ihr eine Idee, wie ich den Code anpassen müsste, damit dieser Fehler nicht mehr vorkommt?
Vielen Dank schonmal für eure Hilfe!
Grüße,
Nico
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datenübertrag nach Word löscht Textmarken
09.11.2017 10:53:17
Nico
Hallo Hansueli!
Vielen Dank für die prompte Unterstützung. Muss mal schauen, wie ich das am besten auf meinen konkreten Fall angepasst bekomme, aber das sieht sehr gut aus.
Grüße,
Nico
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Datenübertrag von Excel nach Word ohne Verlust von Textmarken


Schritt-für-Schritt-Anleitung

  1. Textmarken in Word setzen: Stelle sicher, dass du die Textmarken in deinem Word-Dokument korrekt gesetzt hast. Gehe zu „Einfügen“ > „Textmarke“ und füge die gewünschten Namen hinzu.

  2. VBA-Editor in Excel öffnen: Öffne den VBA-Editor in Excel mit ALT + F11. Füge ein neues Modul hinzu.

  3. Makro erstellen: Kopiere den folgenden Code in das Modul:

    Sub ÜbertragNachWord()
       Dim objApp As Object
       Dim objDocument As Object
       Dim strBookmark3 As String
       Dim strBookmark4 As String
    
       strBookmark3 = "StartTextmarke"
       strBookmark4 = "EndTextmarke"
    
       ' Word-Anwendung starten
       Set objApp = CreateObject("Word.Application")
       Set objDocument = objApp.Documents.Open("DeinDokument.docx")
    
       ' Text löschen und neuen Text einfügen
       If objDocument.Bookmarks.Exists(strBookmark3) And objDocument.Bookmarks.Exists(strBookmark4) Then
           ' Alten Text löschen
           objDocument.Range(Start:=objDocument.Bookmarks(strBookmark3).Range.Start, _
                             End:=objDocument.Bookmarks(strBookmark4).Range.End).Delete
    
           ' Neuen Wert einfügen
           objDocument.Bookmarks(strBookmark3).Range.Text = ThisWorkbook.Sheets("Tabelle1").Cells(3, 4).Value
       Else
           MsgBox ("Textmarken nicht gesetzt - Info 1")
       End If
    
       ' Dokument speichern und schließen
       objDocument.Save
       objDocument.Close
       objApp.Quit
    End Sub
  4. Makro anpassen: Ändere die Namen der Textmarken und den Zellbezug entsprechend deiner Excel-Datei.

  5. Makro ausführen: Führe das Makro aus, um die Daten zu übertragen.


Häufige Fehler und Lösungen

  • Problem: Word löscht beim Schreiben die Textmarken.

    • Lösung: Stelle sicher, dass du den richtigen Bereich löschst. Nutze die Delete-Methode auf dem Range-Objekt.
  • Problem: Textmarken verschwinden.

    • Lösung: Überprüfe den Code, um sicherzustellen, dass du die Textmarken nur löscht, wenn es nötig ist. Vermeide es, den gesamten Bereich zu löschen, wenn nur ein Zeichen vorhanden ist.

Alternative Methoden

Eine alternative Methode besteht darin, die Textmarken zu sichern, bevor du den Text löschst. Du könntest die Textmarken in einer Variablen speichern und nach dem Löschen wiederherstellen.

Dim bookmarkRange As Range
Set bookmarkRange = objDocument.Bookmarks(strBookmark3).Range
bookmarkRange.Select
bookmarkRange.Delete
objDocument.Bookmarks.Add strBookmark3, bookmarkRange

Praktische Beispiele

Angenommen, in deinem Excel-Dokument befindet sich in Zelle D3 der Wert „Neuer Text“. Der folgende Code überträgt diesen Wert in die Textmarke „StartTextmarke“:

objDocument.Bookmarks("StartTextmarke").Range.Text = ThisWorkbook.Sheets("Tabelle1").Cells(3, 4).Value

Wenn das alte Datenfeld nur ein Zeichen hat, wird es trotzdem gelöscht, ohne die Textmarke selbst zu verlieren.


Tipps für Profis

  • Verwende objDocument.Bookmarks("BookmarkName").Range.Text anstelle von objApp.Selection, um direkte Manipulationen an der Textmarke durchzuführen und so unerwünschtes Löschen zu vermeiden.
  • Teste das Makro mit einer Kopie deines Word-Dokuments, um Datenverlust zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich alle Textmarken in Word anzeigen?
Du kannst alle Textmarken in deinem Dokument anzeigen, indem du STRG + G drückst und im Dialogfeld „Gehe zu“ die Option „Textmarke“ auswählst.

2. Was passiert, wenn ich eine Textmarke lösche?
Wenn du eine Textmarke entfernst, wird sie aus dem Dokument gelöscht, aber der Inhalt, der mit dieser Textmarke verbunden ist, bleibt erhalten, es sei denn, du löschst den Bereich manuell.

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