Ausgangssituation:
In eine Userform/Multipage mit etwa 70 Combo-, Text- und List-Boxen werden Daten mit nachfolgenden Zeilen eingelesen.
Vereinfachte Darstellung
----------------------
Sub IrgendeinModul()
ComboBox1 = Range("B3")
ComboBox2 = Range("B4")
ListBox1 = Range("B5")
usw. bis etwa Range("B70")
End Sub
-------------------------------------------------
Private Sub ComboBox1_Change()
Irgenwelche Inhalte
End Sub
-------------------------------------------------
Private Sub ComboBox2_Change()
Irgenwelche Inhalte
End Sub
-------------------------------------------------
Private Sub ListBox1_Change()
Irgenwelche Inhalte
End Sub
Wenn ComboBox1 nun im Modul den Wert von B3 erhält, wird das Change-Ereignis von ComboBox1 angesteuert und durchläuft den gesamten Bereich von ComboBox1.
Bei 70 Boxen, welche nun überflüssigerweise angesteuert werden, stellt dieses einen erheblichen Zeitfaktor dar und sollte verhindert werden.
Desweiteren kann es, je nach Programminhalt im Change-Ereignis auch zu Fehlern führen.
Bisher habe ich bei Modulstart im Modul eine Variable auf True, und am Ende wieder auf False gesetzt.
Am Anfang eines jeden Change-Ereignisses wurde diese Variable mit " If Variable = True Then Exit Sub" abgefragt damit nicht das ganze Change-Ereignis durchlaufen werden muste.
Der Weg funktioniert zwar, ist m.E. aber denkbar unelegant und die EnableEvents-Anweisung gilt ja nur für Books und Sheets.
Frage:
Wie kann ich die Change-Ereignisse in Combo- und LisBoxen hier effizienter verhindern ???
Gruß
Bernhard