Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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!
Antworten 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
Antworten 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
Antworten 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!
Antworten 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
Antworten 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
Antworten Top
#7
Dein Code aus #1 und meiner funktionieren wenn du statt Formularsteuerelement das aus ActiveX nimmst.
Antworten Top
#8
Hallo,

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

VG!
Antworten Top


Gehe zu:


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