Hallo,
mit dem unten stehenden VBA-Code kann ein Combinationsfeld, welches direkt in einem Dokument vorhanden ist, initialisiert und beim Anklicken ausgelesen werden.
Damit der VBA-Code funktioniert, müssen im Dokument folgende Elemente Vorhanden sein:
- eine Textmarke mit dem Namen „Textmarke“
- ein Textformularfeld mit dem Namen „Formularfeld“
- ein Kombinationsbox mit dem Namen „ComboBox2“
Viele Grüße,
BigBen
— VBA-Code —
Option Explicit
Private Sub ComboBox2_Change()
FillBookmark „Textmarke“, Me.ComboBox2.Value
ActiveDocument.FormFields(„FormularFeld“).Result = Me.ComboBox2.Value
End Sub
Private Sub FillBookmark(sBookmarkName As String, sTextValue As String)
’ Textmarke mit Inhalt füllen
With ActiveDocument
If ActiveDocument.Bookmarks.Exists(sBookmarkName) Then
Dim bk As Bookmark, rng As Range, lRngStart As Long
Set bk = .Bookmarks(sBookmarkName)
Set rng = bk.Range
lRngStart = rng.Start
If Not bk.Empty Then
’ Alten Inhalt löschen
rng.Delete
Set bk = .Bookmarks.Add(sBookmarkName, .Range(lRngStart, lRngStart))
End If
bk.Range.Text = sTextValue
bk.Delete
Set bk = .Bookmarks.Add(sBookmarkName, .Range(lRngStart, lRngStart + Len(sTextValue)))
Else
MsgBox „Im Dokument existiert keine Textmarke „““ & sBookmarkName & „“", vbCritical"
End If
End With
End Sub
Private Sub FillCombobox2()
’ ComboxBox2 mit Inhalten füllen
With Me.ComboBox2
.Clear
.AddItem „Groß“
.AddItem „Mittel“
.AddItem „Klein“
End With
End Sub
Private Sub UserForm_Initialize()
FillCombobox2
End Sub