Dropdown auswerten und Makro starten
#1
Hallo,

ich habe ein Dropdown-Menue erstellt (Formularsteuerelement), welches mit einigen Werten aus dem Eingabebereich vorbefüllt ist (bspw.: erste Zeile mit "1. Zeileninhalt", zweite Zeile mit "2. Zeileninhalt" usw.
Bei einer Auswahl aus dem Dropdown-Menue möchte ich ein zugehöriges Makro starten.

Folgendes Codebeispiel zeigt leider einen "Laufzeitfehler '424': Objekt erforderlich" an:

Code:
Sub Dropdown123_Change()
  Gehe_zu_Auswahlauswertung
End Sub

Sub Gehe_zu_Auswahlauswertung()
  Select Case DropDown123.Value
  Case "1."                '1. Zeileninhalt
    Call Gehe_zu_Makro_1   
  Case "2."                '2. Zeileninhalt
    Call Gehe_zu_Makro_2 
  End Select
End Sub

Woran könnte das liegen?

Danke und vG!
Top
#2
Hi

Versuch mal.

Sub Dropdown123_Change()
  Gehe_zu_Auswahlauswertung Dropdown123.Text
End Sub

Sub Gehe_zu_Auswahlauswertung(Auswahl As String)
  Select Case Auswahl
  Case "1."                '1. Zeileninhalt
    Call Gehe_zu_Makro_1
  Case "2."                '2. Zeileninhalt
    Call Gehe_zu_Makro_2
  End Select
End Sub

Sub Gehe_zu_Makro_1()
  MsgBox "1"
End Sub
Sub Gehe_zu_Makro_2()
  MsgBox "2"
End Sub

Gruß Elex
Top
#3
Hallo,

verknüpfe das DropDown mit einer Zelle. Ich habe hier mal die Zelle F2 genommen.
In das VBA-Modul des entsprechenden Tabellenblattes (Rechtsklick auf den Reiter > Code anzeigen) kommt dann dieser Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$F$2" Then
Select Case Target.Value
Case 1 '1. Zeileninhalt
Call Gehe_zu_Makro_1
Case 2 '2. Zeileninhalt
Call Gehe_zu_Makro_2
End Select
End If
End Sub
Gruß Uwe
Top
#4
Hallo und danke für eure Rückmeldungen.

@Elex: Bei deiner Variante erhalte ich beim Erreichen von "Gehe_zu_Auswahlauswertung Dropdown9.Text" einen "Laufzeitfehler'424': Objekt erforderlich".

@Uwe: Bei deiner Variante sehe ich in der verknüpften Zelle die entsprechende Werteänderung (bspw. "2" bei Auswahl des zweiten Eintrages). Allerdings erreiche ich (im Debugmodus) nicht den Case-Zweig hinter "Sub Worksheet_Change(ByVal Target As Range)".

Könnt ihr hier bitte noch mal nachschauen? Danke!
Top
#5
Hallo,

stimmt ja, die Änderung durch Dropdownverknüpfung löst kein Ereignis aus. Blush
Dann weise dem Dropdown per Rechtsklick und Makro zuweisen > Neu ein Makro zu mit folgendem Code:
Sub Dropdown1_BeiÄnderung()
Select Case ActiveSheet.DropDowns("Dropdown 1").Value
Case 1 '1. Zeileninhalt
Call Gehe_zu_Makro_1
Case 2 '2. Zeileninhalt
Call Gehe_zu_Makro_2
End Select
End Sub
Gruß Uwe
Top
#6
Hallo,

frag doch den Listindex ab.
Code in ein allgemeines Modul. Mit Rechtsklick auf dein Dropdown den Code zuweisen. Den Blattnamen mußt du an deine Verhältnisse anpassen.
Code:
Sub Dropdown123_BeiÄnderung()
With Worksheets("Tabelle1").Shapes("Dropdown 123")
    Select Case .ControlFormat
        Case 1
            MsgBox "Makro 1"
        Case 2
            MsgBox "Makro 2"
        Case 3
            MsgBox "Makro 3"
        Case 4
            MsgBox "Makro 4"
        Case 5
            MsgBox "Makro 5"
        Case Else
    End Select
End With
End Sub

Gruß Werner
Top
#7
Dein Code aus #1 und meiner funktionieren wenn du statt Formularsteuerelement das aus ActiveX nimmst.
Top
#8
Hallo,

besten Dank für die vielen Tipps. Nun funktioniert es ohne Probleme.

VG!
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste