Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1148to1152
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

Passendes ComboBox-Ereignis gesucht

Passendes ComboBox-Ereignis gesucht
Martin
Hallo liebe Excelgemeinde,
ich suche ein ComboBox-Ereignis, dass ausschließlich durch eine manuelle Änderung des Combobox-Index (also per Maus oder Tastatur) ausgelöst wird. Dieses Ereignis soll aber nicht auslösen, wenn ein Makro den ListIndex der Combobox ändert.
(Hinweis: Bei mir haben alle Comboboxen den Style "fmStyleDropDownList", falls das von Relevanz sein sollte).
Für Antworten / Vorschläge wäre ich sehr dankbar.
Viele Grüße
Martin

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Combobox wo? TB oder UF?
24.03.2010 12:18:26
Rudi
AW: Combobox wo? TB oder UF?
24.03.2010 12:23:22
Martin
Hallo Rudi,
entschuldigung, ich habe die Comboboxen in einer UserForm.
Viele Grüße
Martin
AW: Combobox wo? TB oder UF?
24.03.2010 12:30:17
Renee
Hi Martin,
1. Vor und nach dem Ändern des ListIndex
ComboBox1.Tag = "X"
ListIndex = 2
CombBox1.Tag = ""

2. Im _Change Ereignis
Sub ComboBox1_Change...
If CombBox1.Tag = "X" Then Exit Sub
...Dein Code

GreetZ Renée
AW: Passendes ComboBox-Ereignis gesucht
24.03.2010 12:31:43
fcs
Hallo Martin,
Möglichkeit A:
In den Makros, die die Listbox-Werte verändern müssen die Ereignis-Makros zeitweise deaktiviert wern.
'am Anfang der Prozedur
With Application
.EnableEvents = False
End With
'am Ende der Prozedur
With Application
.EnableEvents = True
End With
Möglichkeit B:
im Makro setzt du eine in einem allgemeinen Modul als Public deklarierte boolsche Variable zu Beginn auf True und am Ende wieder auf False.
In Combobox-Change-Ereignisprozedur prüfst du den Wert dieser Variablen in der 1. Zeile. Bei Wert True wird die Prozedur sofort wieder verlassen.
'Beispiel- Code in Tabellenblatt-Modul
Private Sub ComboBox1_Change()
If bolMakroAendert = True Then Exit Sub
'abhier dann der bei manueller Änderung auszuführende Code
End Sub
'Wertändertung per makro - beispielhaft
Sub AATest()
bolMakroAendert = True
Me.ComboBox1.Value = ""
bolMakroAendert = False
End Sub
'Code in einem allgemeinen Modul
Public bolMakroAendert As Boolean

Gruß
Franz
Anzeige
Events = False kann nicht funktionieren
24.03.2010 13:02:45
Renee
Franz,
Die Application.EnableEvents - Steuerung funktioniert nur für Events der Arbeitsmappe/Blätter nicht aber für Steuerelemente (ob auf dem Blatt oder in einer UF!)
Mit einem Public Boolean, funktionierts ob in UF oder Blatt.
In der UF bevorzuge ich die .Tag Eigenschaft der Elemente.
GreetZ Renée
Großes Dankeschön Euch allen
24.03.2010 13:20:44
Martin
Hallo,
ich hatte mich schon gewundert, weshalb die von Franz vorgeschlagene "Application.EnableEvents = False"-Anweisung bei mir nicht funktionieren wollte. Da mein Problem sich auf mehrere ComboBoxen bezieht, ist die .TAG-Eigenschaft für mich weniger gut als die öffentliche boolsche Variable geeignet. Vielen Dank für eure Hilfe!
Viele Grüße
Martin
Anzeige
AW: Events = False kann nicht funktionieren
24.03.2010 15:20:37
fcs
Hallo Renée,
bei Userforms war mir schon bekannt, dass "EnableEvents" keine Wirkung auf die Ereignismakros der Steuerelemente hat.
Bei Steuerelemente in Tabellenblättern war mir das bisher nicht so sehr aufgefallen. Allerdings ist ea bei mir sehr die Ausnahme, das ich die Werte von Steuerlementen in Tabellenblättern per Makro ändere. Dort sind es meist Zellwerte und da funktioniert die Deaktivierung der Ereignismakros für Worksheets ja.
Gruß
Franz

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige