Word VBA Dropdownmenü abgleich mit Dropdownmenü2

  • Word

    Word VBA Dropdownmenü abgleich mit Dropdownmenü2

    Hallo zusammen

    Leider habe ich in Visual Basic wenig Erfahrungen, kann mir hier jemand weiter helfen? Das Ausfüllen Dropdown Fenster Getränke füllt automatsch das dropdown Menü aus, bis hierher funktioniert alles super. Mein Problem ist wie erweitere ich das ganze das Getränke02 sich mit Menü02 abgleichen beim auswählen? und das ganze mit 03. Kann man das durch eine Schleife erweitern? Was muss ich anpassen?

    Vielen Dank im voraus

    Dirk

    script:

    Visual Basic-Quellcode

    1. Const SOURCE_CC As String = "Getränke" ' Titel des 1. DropDowns
    2. Const DEPENDENCY_CC As String = "Menü" ' Titel des 2. DropDowns, dessen Einträge
    3. ' von der Auswahl des 1. DropDowns abhängig sind
    4. Const SOURCE_CC2 As String = "Getränke02" ' Titel des 3. DropDowns
    5. Const DEPENDENCY_CC2 As String = "Menü02" ' Titel des 4. DropDowns, dessen Einträge
    6. ' von der Auswahl des 3. DropDowns abhängig sind
    7. Const SOURCE_CC3 As String = "Getränke03" ' Titel des 5. DropDowns
    8. Const DEPENDENCY_CC3 As String = "Menü03" ' Titel des 6. DropDowns, dessen Einträge
    9. ' von der Auswahl des 5. DropDowns abhängig sind
    10. ' stellt die Auflistung der abhängigen Einträge im 2. DropDown bereit
    11. ' Key: Eintrag im 1. DropDown
    12. ' Item: Liste der von Key abhängigen Einträge
    13. Dim dependentEntries As New Collection
    14. Private Sub initDependentEntries()
    15. If dependentEntries.Count = 0 Then
    16. dependentEntries.Add Key:="Wählen Sie ein Element aus.", Item:=Array("Wählen Sie ein Element aus.")
    17. dependentEntries.Add Key:="Wasser", Item:=Array("Gulasch")
    18. dependentEntries.Add Key:="Cola", Item:=Array("Gyros")
    19. dependentEntries.Add Key:="Saft", Item:=Array("Pizza")
    20. End If
    21. End Sub
    22. ' erneuert beim Verlassen des 1. DropDowns die Einträge des 2. DropDown
    23. ' in Abhängigkeit des im 1. DropDown gewählten Eintrags und zeigt den 1. Eintrag an
    24. Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)
    25. '
    26. ' wenn 1. DropDown ("Getränke") verlassen wird...
    27. If ContentControl.Tag = SOURCE_CC Then
    28. '
    29. ' gewählten Eintrag aus 1. DropDown holen
    30. Dim selectedEntry As String: selectedEntry = ContentControl.Range.Text
    31. '
    32. ' 2. DropDown ("Menü") ermitteln, um es bearbeiten zu können
    33. Dim cc As ContentControl: Set cc = getCCbyTitle(DEPENDENCY_CC)
    34. If Not cc Is Nothing Then
    35. With cc
    36. '
    37. ' bisherige Einträge entfernen
    38. .DropdownListEntries.Clear
    39. '
    40. ' ggf. Einträge erstellen
    41. initDependentEntries
    42. '
    43. ' Einträge gem. Auswahl im 1. DropDown in 2. DropDown erstellen
    44. Dim entry
    45. For Each entry In dependentEntries(selectedEntry)
    46. .DropdownListEntries.Add entry
    47. Next
    48. '
    49. ' 1. Eintrag vorselektieren
    50. .DropdownListEntries(1).Select
    51. End With
    52. End If
    53. End If
    54. End Sub
    55. ' da ContentControls eigentlich nur über einen Index angesprochen werden können,
    56. ' ermittelt diese Hilfsfunktion ein ContentControl anhand seines Titels
    57. Private Function getCCbyTitle(ccTitle As String) As ContentControl
    58. '
    59. ' falls es ein ContentControl mit dem Titel nicht gibt, wird 'Nothing' zurückgegeben
    60. Set getCCbyTitle = Nothing
    61. '
    62. ' in allen ContentControls nach dem ContentControl mit dem angegebenen Titel suchen
    63. Dim cc As ContentControl
    64. For Each cc In ContentControls
    65. If cc.Title = ccTitle Then Set getCCbyTitle = cc
    66. Next
    67. End Function


    Topic verschoben, CodeTags gesetzt ~VaporiZed

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()