Sherman123
Fleet Admiral
- Registriert
- Nov. 2002
- Beiträge
- 12.341
Hallo zusammen,
ich bin am Verzweifeln mit VBA (und sorry vorneweg. Der Code unten ist nicht hübsch) Vielleicht kann mir trotzdem jemand helfen.
Ich habe ein Word-Template mit 2 Dropdownlisten: Der User soll zuerst die Auswahl im Dropdown-Menü 1 treffen. Das Makro schreibt danach mögliche Optionen in die Dropdown-Liste 2 (je nach Auswahl in Dropdown-Liste 1)
.
Der Code funktioniert prinzipiell und wird auch korrekt aus Word aufgerufen. Aber ich schaffe es nicht die Auswahl (Index oder Text) des Dropdown-Menü 1 auszulesen.
Hat hier jemand eine Idee?
ich bin am Verzweifeln mit VBA (und sorry vorneweg. Der Code unten ist nicht hübsch) Vielleicht kann mir trotzdem jemand helfen.
Ich habe ein Word-Template mit 2 Dropdownlisten: Der User soll zuerst die Auswahl im Dropdown-Menü 1 treffen. Das Makro schreibt danach mögliche Optionen in die Dropdown-Liste 2 (je nach Auswahl in Dropdown-Liste 1)
.
Der Code funktioniert prinzipiell und wird auch korrekt aus Word aufgerufen. Aber ich schaffe es nicht die Auswahl (Index oder Text) des Dropdown-Menü 1 auszulesen.
Hat hier jemand eine Idee?
Code:
Sub Unterauswahl()
Dim dropdown1 As ContentControl
Dim dropdown2 As ContentControl
Dim options() As String
Dim selectedOption As String
Dim selectedOptionIndex As Integer
Dim i As Integer
'MsgBox "aufruf-check"
Set dropdown1 = ActiveDocument.SelectContentControlsByTitle("MainCategory").Item(1)
Set dropdown2 = ActiveDocument.SelectContentControlsByTitle("SubCategory").Item(1)
'Hier liegt mein Problem: Wie lese ich die durch den User getroffen Auswahl bei der Dropdownliste1 aus?'
selectedOptionIndex = XXXXX
'Extrahiere den Text der ausgewählten Option in der ersten Dropdown Liste; funktioniert
selectedOption = dropdown1.DropdownListEntries(selectedOptionIndex).Text
'Logik-Verknüpfung; funktioniert
If selectedOption = "Woodyard" Then
options = Split("Select Subcategory", "General Safety, Wood Delivery & Acceptance, Debarking, Chipping, Storage, Screening, Other", ",")
'ElseIf'
'...
'Else'
'...
End If
' Löschen Dropdown2; funktioniert
For i = dropdown2.DropdownListEntries.Count To 1 Step -1
dropdown2.DropdownListEntries(i).Delete
Next i
'überschreiben der Liste dropdown2; funktioniert
For i = LBound(options) To UBound(options)
dropdown2.DropdownListEntries.Add Text:=options(i)
Next i
End Sub
Zuletzt bearbeitet: