Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Bookmark Ein/Ausblenden

Bookmark Ein/Ausblenden
27.07.2021 10:37:43
Raptor
Hallo zusammen,
ich habe vor einiger Zeit eine Antwort auf diese Frage gefunden, allerdings findet es die Antwort im Archiv nicht mehr. Ich bin mittlerweile ziemlich ratlos, da es mit dem Code sehr gut funktioniert hat. 
Ich habe eine Excel VBA Datei, mit welcher ich Verträge erstelle. In Excel öffnet sich eine Userform in die man Daten eingibt (Name, Vorname, etc.). Zu den relevanten Daten wie Name, Vorname kommen auch nicht relevante Date. Die nicht relevante Daten sind spezielle Sachen, die entweder vorhanden oder nicht vorhanden sein sollen. Nach dem Ausfüllen der Userform werden diese in ein Tabellenblatt kopiert und von dort aus in mein Word Dokument über eine Verknüpfung eingefügt. Das funktioniert bisher auch wirklich gut. Bei den nicht relevanten Daten verhaut es mir leider immer die Formatierung bei meiner Nummerierung, weshalb ich mich nach einer anderen Möglichkeit umgeschaut habe. So bin ich auf Bookmarks gestoßen. Ich möchte, dass wenn der Vertragsersteller CheckBox1 auswählt der Text ein- oder ausgeblendet ist, da mit der Datei ja mehrere Verträge erstellt werden sollen, möchte ich die Bookmark nicht jedes Mal neu setzen.
Ich bin damit nun schon seit 2 Tagen beschäftigt, aber ohne Erfolg. So langsam verliere ich meine Nerven an der Datei und wäre sehr dankbar, wenn mir jemand einen Lösungsvorschlag machen könnte.
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bookmark Ein/Ausblenden
27.07.2021 11:33:42
ede
Hallo,
lass den gewünschten Text an der Textmarke im Worddokument weg. Wenn in deiner Userform die CheckBox1 gesetzt ist, dann übergib an Word den gewünschten Text an die Textmarke.
Gruss
ede
AW: Bookmark Ein/Ausblenden
27.07.2021 11:44:57
Raptor
Hallo Ede,
ich habe deine Idee versucht und gebe den Text von VBA direkt an Word, allerdings scheint mein Code falsch zu sein, da es nicht funktioniert hat.
If Userform1.CheckBox1 = True Then
Doc1.Bookmarks("Textmarke1").Range.Text = "Es funktioniert!"
Else
Doc1.Bookmarks("Textmarke1").Range.Text "" = " "
End If
Doc1.SaveAs Ziel1
Doc1.Close
Set Word = Nothing
Siehst du hier zufällig auf den ersten Blick einen Fehler?
Danke und Gruß
Anzeige
AW: Bookmark Ein/Ausblenden
27.07.2021 11:51:14
ede
Hallo nochmal,
den else-Zweig brauchst du nicht, ich gehe davon aus, das es die Textmarke "Textmarke1" im Worddokument gibt. Gibt es einen vba-Fehler oder kommt nur kein Text in Word an?
ede
AW: Bookmark Ein/Ausblenden
27.07.2021 11:53:56
Raptor
Nur der Text kommt nicht an. VBA zeigt mir keinen Fehler
AW: Bookmark Ein/Ausblenden
27.07.2021 11:57:11
ede
bitte prüf, ob es in deinem Worddokument die Textmarke mit dem "Textmarke1" gibt.
ede
Anzeige
AW: Bookmark Ein/Ausblenden
27.07.2021 12:01:36
Raptor
Ja sie existiert und ich habe auch nirgends ein Schreibfehler gemacht... komisch
Raptor
AW: Bookmark Ein/Ausblenden
27.07.2021 12:25:40
ede
dann kann ich da auch erstmal nicht weiterhelfen, evtl. könntest du mit Bookmarks.Exists prüfen, ob es diese wirklich gibt:

If Doc1.Bookmarks.Exists("Textmarke1") Then
msgbox "da"
else
msgbox "nicht da"
End If
viel Erfolg trotzdem
ede
Anzeige
AW: Bookmark Ein/Ausblenden
27.07.2021 12:58:21
ede
ich hab mir mal die Arbeit gemacht und dein Beispiel nachgestellt, bei mir funktioniert es ohne Fehler:

Sub test_bm()
Dim appWord As Object
Dim objDoc As Object
Dim xDoc As String
'Umgebung allgemein
Set appWord = CreateObject("Word.Application")
xDoc = "c:\temp\test.docx"
If Dir(xDoc)  "" Then
Set objDoc = appWord.Documents.Add(xDoc)
appWord.Visible = True
Else
MsgBox "Das Dokument wurde nicht gefunden!"
Exit Sub
End If
If UserForm1.CheckBox1 = True Then
If appWord.ActiveDocument.Bookmarks.Exists("Textmarke1") Then
With objDoc
.Bookmarks("Textmarke1").Range.Text = "Dieser Text steht an Textmarke1!!!!"
End With
Else
MsgBox "Die Textmarke [Textmarke1] ist nicht vorhanden"
End If
Else
MsgBox "UserForm1.CheckBox1 ist nicht aktiviert"
End If
Set appWord = Nothing
Set objDoc = Nothing
End Sub
gruss
ede
Anzeige
AW: Bookmark Ein/Ausblenden
27.07.2021 13:10:07
Raptor
Dankeschön für deine Mühe Ede
AW: Bookmark Ein/Ausblenden
28.07.2021 08:03:59
Raptor
Hallo Ede,
ich bin es nochmal. Es funktioniert wie gewollt. Wie könnte ich es aber ausblenden lassen, da es bei einer Tabelle die Formatierung nicht übernimmt?
Danke und Gruß
Raptor
AW: Bookmark Ein/Ausblenden
27.07.2021 11:50:27
Raptor
Hallo Ede,
ich habe dein Vorschlag ausprobiert und den Sollinhalt der Textmarke per VBA an Word übergeben, allerdings ohne Erfolg.
Siehst du auf den ersten Blick eventuell einen Fehler in meinem Code?
Danke und Gruß
If UserForm1.CheckBox1 = True Then
Doc1.Bookmarks("Textmark1").Range.Text = "Es funktioniert."
Else
Doc1.Bookmarks("Textmark1").Range.Text = ""
End If
Doc1.SaveAs Ziel1
Doc1.Close
Set Word = Nothing
Anzeige
AW: Bookmark Ein/Ausblenden
28.07.2021 10:18:44
Jowe
Hi,
anfangs lautete die Textmarkenbezeichnung "Textmarke1".
In Deinem letzten Versuch dann aber "Textmark1".
Vielleicht liegt dort der Fehler.
Gruß
Jochen
;
Anzeige
Anzeige

Infobox / Tutorial

Bookmark Ein/Ausblenden in Excel und Word


Schritt-für-Schritt-Anleitung

  1. Userform erstellen: Beginne mit der Erstellung einer Userform in Excel, in die die relevanten Daten eingegeben werden. Füge eine Checkbox (z.B. CheckBox1) hinzu, die den Ein- oder Ausblenden von Text steuert.

  2. VBA-Code schreiben: Verwende folgenden VBA-Code, um den Text an das Word-Dokument zu übergeben:

    If UserForm1.CheckBox1 = True Then
        If Doc1.Bookmarks.Exists("Textmarke1") Then
            Doc1.Bookmarks("Textmarke1").Range.Text = "Es funktioniert!"
        End If
    Else
        If Doc1.Bookmarks.Exists("Textmarke1") Then
            Doc1.Bookmarks("Textmarke1").Range.Text = ""
        End If
    End If
  3. Dokument speichern und schließen: Stelle sicher, dass du das Word-Dokument speicherst und schließt:

    Doc1.SaveAs Ziel1
    Doc1.Close
    Set Word = Nothing
  4. Überprüfen der Textmarke: Nutze den Code Bookmarks.Exists, um zu prüfen, ob die Textmarke tatsächlich vorhanden ist.


Häufige Fehler und Lösungen

  • Text wird nicht angezeigt: Überprüfe, ob die Textmarke "Textmarke1" im Word-Dokument existiert. Ein häufiger Fehler ist, dass die Bezeichnung nicht übereinstimmt.

  • Keine Fehlermeldung, aber kein Text: Wenn kein Text in Word ankommt, kann es sein, dass die Checkbox nicht aktiviert ist oder der Code nicht korrekt auf die Textmarke zugreift.

  • Falsche Schreibweise: Achte darauf, dass die Schreibweise der Textmarke genau übereinstimmt. Ein Tippfehler kann dazu führen, dass die Textmarke nicht gefunden wird.


Alternative Methoden

Eine alternative Methode, um Text in Word auszublenden, besteht darin, die Formatierung des Textes zu ändern, anstatt den Text zu löschen. Du kannst die Schriftart auf "unsichtbar" setzen oder den Text in eine andere Farbe ändern. Hier ist ein Beispiel:

If UserForm1.CheckBox1 = True Then
    Doc1.Bookmarks("Textmarke1").Range.Font.Color = RGB(255, 255, 255) ' Weiß
Else
    Doc1.Bookmarks("Textmarke1").Range.Font.Color = RGB(0, 0, 0) ' Schwarz
End If

Praktische Beispiele

  1. Verwendung in Verträgen: Wenn du Verträge erstellst, kannst du nicht relevante Daten durch das Ausblenden von Text steuern. Das ist besonders nützlich, wenn unterschiedliche Versionen eines Vertrags erstellt werden.

  2. Dynamische Inhalte: Nutze die Checkbox, um dynamische Inhalte in Word-Dokumenten zu erzeugen. Dies macht deine Dokumente flexibler und anpassungsfähiger.


Tipps für Profis

  • Debugging: Verwende MsgBox, um den Status des Codes während der Ausführung zu überprüfen. Dies kann helfen, Fehler schnell zu identifizieren.

  • Code modularisieren: Teile deinen Code in kleinere, wiederverwendbare Subroutinen auf. Dies verbessert die Lesbarkeit und Wartbarkeit.

  • Sicherheitskopien: Erstelle immer Sicherheitskopien deiner Excel- und Word-Dokumente, bevor du Änderungen vornimmst.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Textmarken gleichzeitig steuern? Du kannst den gleichen Code für jede Textmarke anpassen, indem du den Text für jede Textmarke entsprechend setzt oder ausblendest.

2. Was mache ich, wenn mein Word-Dokument nicht gefunden wird? Überprüfe den Pfad des Dokuments in deinem Code. Stelle sicher, dass das Dokument existiert und der Pfad korrekt angegeben ist.

3. Kann ich auch andere Excel-Steuerelemente verwenden? Ja, du kannst andere Steuerelemente wie Dropdown-Listen oder Schaltflächen verwenden, um die Sichtbarkeit von Text in Word zu steuern.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige