Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
916to920
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
916to920
916to920
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

EnableEvents wird ignoriert

EnableEvents wird ignoriert
16.10.2007 11:11:00
gerwas
Hallo Weite Welt - mal wieder
Seit drei Tagen verstehe ich die vba-welt nicht mehr!
Ich habe ein macro, welches beim öffnen des workbook ausgeführt wird. Dieses füllt zwei ComboBoxen mit Items. Da ich später die Change-Prozedure der ComboBoxen nutzen will setze ich EnableEvents vor dem Füllen auf False und wenn fertig wieder auf True, damit die Change-Prozedure nicht stört - dachte ich!!
Aber sobald mein Macro die ComboBox ändert, nachdem sie gefüllt wurde, meldet sich die Change-Prozedure, obwohl die Ergeignisse ausgeschaltet sind - und das kann ich nicht verstehen - vielleicht hat jemand einen Tipp...
hier mal der macro-code:
("kum" und "gesamt" sind die objektnamen der blätter, die die ComboBoxen enthalten)
Public oe4, mmm

Sub starten()
oe4 = Array("Bereich 1", "Bereich 2", "Bereich 3", "Bereich 4")
mmm = Array("Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", _
"Aug", "Sep", "Okt", "Nov", "Dez")
Application.EnableEvents = False
kum.cmb_wache.Clear
For k = 0 To 3
kum.cmb_wache.AddItem (oe4(k))
Next
kum.cmb_wache = "Bereich auswählen"
kum.Range("b8") = "Bereich 1"
gesamt.cmb_monat.Clear
For k = 0 To 11
gesamt.cmb_monat.AddItem (mmm(k))
Next
gesamt.cmb_monat = "Monat auswählen"
If Day(Date) > 10 Then k = 0 Else k = 1
gesamt.Range("b1") = "Jan"
Application.EnableEvents = True
End Sub


gruss GerWas

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
EnableEvents funktioniert nur in MODULEN
16.10.2007 11:39:00
NoNet
Hey GerWAs,
EnableEvents funktioniert generell nur in Standard-Modulen, jedoch nicht in Klassenmodulen von Tabellenblättern oder Klassenmodul der Arbeitsmappe !
Das ist eine (sehr versteckte) alte und tatsächlich hin und wieder lästige Egenschaft von Excel VBA !
Gruß, NoNet

SORRY ! - Vergiss meinen Beitrag,.....
16.10.2007 11:42:00
NoNet
Sorry G.,
das bezog sich nicht auf Klassenmodule sondern auf UserForms !!
*wohabeichnurmeinenkopf?*
Gruß, NoNet

AW: EnableEvents wird ignoriert
16.10.2007 11:45:00
Oberschlumpf
Hi
Bin mir nicht sicher, aber ich glaube, die Ereignisverfolgung gilt NUR für die Tabelle(nblätter), aber nicht für Steuerlemente.
Umgehen kannst du das Problem vllt so:
1. Schreibe in ein allgemeines Modul

Public pboCmbChangeNichtErlaubt As Boolean


2. Schreib dort in deinen Code, wo jetzt Application.EnableEvents = False steht, das hier


pboCmbChangeNichtErlaubt = True


3. Schreibe in jedes Change-Ereignis aller Comboboxen


If pboCmbChangeNichtErlaubt = True Then
pboCmbChangeNichtErlaubt = False
Exit Sub
End If
...ab hier dann dein Code, der NUR ausgeführt werden soll, wenn du es wünscht


zu 1.
hier wird die Variable pboCmbChangeNichtErlaubt öffentlich als Boolean (Ja/Nein..True/False) deklariert, und der zugewiesene Wert steht in allen Prozeduren in der Datei zur Verfügung.
zu 2.
hier wird die Variable auf True gesetzt, der Code in den Change-Ereignissen der Comboboxen soll also NICHT ausgeführt werden
zu 3.
hier wird nun geprüft, ob die Variable pboCmbChangeNichtErlaubt = True ist. Wenn ja, wird die Variable wieder auf False gesetzt, und die Sub wird verlassen.
Hilft das?
Dein Vorname zu wissen, wäre nett.
Ciao
Thorsten

Anzeige
AW: EnableEvents wird ignoriert
16.10.2007 15:05:00
gerwas
Danke für denTipp, aber diese Variante habe ich auch schon gemacht.
Was ich nicht verstehe ist, das sich mein Change-Ereignis erst meldet, wenn die Zeile
kum.cmb_wache = "Bereich auswählen"
dran ist.
Vorher wurde ja schon die ComboBox geChange't als in der Schleife Additem ausgeführt wurde - oder nicht?
Gruß Gerwas

AW: EnableEvents wird ignoriert
16.10.2007 15:28:00
Oberschlumpf
Hi
Additem fügt der Liste einen Wert hinzu.
Das Changeereignis wird nur ausgeführt, wenn der angezeigte/ausgewählte Wert der Combobox geändert/gelöscht wird.
Ciao
Thorsten

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige