Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1892to1896
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Prüfen ob Dropdown offen ist

Prüfen ob Dropdown offen ist
25.07.2022 12:46:07
JoTu
Hey,
ich habe ein Icon, eine ComboBox und Werte.
Wenn ich das Icon drücke, soll die ComboBox angezeigt und mit Werten gefüllt werden. Bei nochmaligen klicken einfach wieder ausblenden.
Die Werte sind Namen von Tabellen, die ich im Sheet habe.
Wenn ich eine Auswahl in der ComboBox treffe, soll sich die ComboBox ausblenden und zur entsprechenden Tabelle springen.
Mein Problem: Wenn ich das Icon anklicke und damit in der ComboBox alle Werte gelöscht und aktuelle Werte eingetragen werden, erzeugt das ein ComboBox1_Change()-Event. Mein ComboBox1_Change()-Event, mit welchem ich zur ausgewählten Tabelle springen möchte, aktiviert sich dadurch ebenfalls (logischerweise). Das ergibt aber immer einen Fehler, weil in ComboBox1 beim Icon-Klick keine Werte eingetragen sind (durch .clear) und somit auch nicht zu einer Tabelle gesprungen werden kann.
Mein Frage: Gibt es eine Möglichkeit, dies zu umgehen? Entweder durch Variablen, die ich mitnehme (wenn icon-klick dann x="1", ansonsten x="0"; bei combobox_change: wenn x=1 dann überspringen alles, ansonsten führe Code aus) oder zu prüfen, ob das Dropdown geöffnet ist (weil wenn nicht, dann war es ein icon-klick und dann kann es den Code überspringen) oder etwas anderes?
Mein Code bisher:

Sub GoTo_Abteilung()
Dim cbAbteilung As ComboBox
Set cbAbteilung = sh_Jahresdispo1.ComboBox1
cbAbteilung.Visible = Not cbAbteilung.Visible
cbAbteilung.Clear
Dim lo As ListObject
For Each lo In ActiveSheet.ListObjects
cbAbteilung.AddItem lo.Name
Next lo
End Sub

Private Sub ComboBox1_Change()
sh_Jahresdispo1.ListObjects(sh_Jahresdispo1.ComboBox1.Value).DataBodyRange(1, 1).Select
sh_Jahresdispo1.ComboBox1.Visible = False
End Sub
Vielen Dank für jede Empfehlung,
LG, Johannes

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prüfen ob Dropdown offen ist
25.07.2022 13:05:12
Oberschlumpf
Hi Johannes,
verwende eine globale boolsche Variable...
- wenn du auf dein "Icon" klickst, wird ja ein Makro gestartet
...in diesem "icon-makro" setzt du gleich als erste Codezeile (Dim, ReDim-Zeilen ausgenommen) die Variable, z Bsp pboNoChg auf TRUE
- im Change-Ereignis, ebenfalls als erste Codezeile, prüfst du ob pboNoChg = TRUE
...wenn TRUE = Ja, dann gleich wieder raus aus dem Makro für Cmb-Change
- nun als letzte Zeile im "icon-makro" setzt du pboNoChg wieder auf FALSE
Hilfts?
Ciao
Thorsten
AW: Prüfen ob Dropdown offen ist
25.07.2022 13:26:09
JoTu
Hey Thorsten,
habe es versucht, aber es kommt weiterhin die gleiche Fehlermeldung. War scheinbar von mir keine gute Ausgangsidee mit der Variablen.
Dafür funktioniert ja aber der Vorschlag von Nepomuk.
Danke trotzdem
LG, Johannes
Anzeige
AW: Prüfen ob Dropdown offen ist
25.07.2022 13:20:53
Nepumuk
Hallo Johannes,
teste mal:

 Private Sub ComboBox1_Change()
If ComboBox1.ListIndex > -1 Then
sh_Jahresdispo1.ListObjects(sh_Jahresdispo1.ComboBox1.Value).DataBodyRange(1, 1).Select
sh_Jahresdispo1.ComboBox1.Visible = False
End If
End Sub
Gruß
Nepumuk
AW: Prüfen ob Dropdown offen ist
25.07.2022 13:24:40
JoTu
Hey Nepomuk,
das funktionert. Vielen Dank!
LG, Johannes

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige