Clever-Excel-Forum

Normale Version: Dropdown auswerten und Makro starten
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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!
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
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
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!
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
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
Dein Code aus #1 und meiner funktionieren wenn du statt Formularsteuerelement das aus ActiveX nimmst.
Hallo,

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

VG!