Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Change Ereigniss verhindern | Herbers Excel-Forum


Betrifft: Change Ereigniss verhindern von: Horst
Geschrieben am: 20.11.2009 13:15:47

Hallo

in einer UserForm spricht immer wieder ein _Change() Ereignis an, welches für micht nicht
nachvollziehbar ist und welches ich manchmal nicht gebrauchen kann.

Meine Frage: Kann ich Change Ereignisse nicht sperren ?

Ich habe dies mit Application.EnableEvents = False versucht, aber das bringt leider nichts.

Es währe super, wenn jemand einen Tip hat.

Vielen Dank im Voraus

Gruß Horst

  

Betrifft: Ereignisse in UF per Variable verhindern von: NoNet
Geschrieben am: 20.11.2009 13:30:30

Hallo Horst,

in UserForms kann man leider keine Ereignisse per Application.EnableEvents = False unterdrücken, das ist nur in "normalen" Modulen/Klassenmodulen möglich !

Du kannst Dir jedoch mit einer boole'schen Variable behelfen - hier ein exemplarische Beispiel mit 2 Controls (2 unterschiedliche Alternativen) :

Option Explicit

Dim bolEreignis As Boolean 'Variable für De-/Aktivierung von Events

Private Sub UserForm_Initialize()
    bolEreignis = False 'Ereignisse DEAKTIVIEREN
    'bolEreignis=TRUE   'Ereignisse AKTIVIEREN
End Sub

Private Sub TextBox1_Change()
    'Alternative 1 : Code innerhalb IF-Abfrage ausführen :
    If bolEreignis Then
        'Hier Dein Ereignis-Code
    End If
End Sub

Private Sub ComboBox1_Change()
    'Alternative 2 : SUB vorzeitig beenden :
    If Not bolEreignis Then Exit Sub
    'Hier Dein Ereignis-Code
End Sub
Gruß, NoNet


  

Betrifft: AW: Change Ereigniss verhindern von: Björn B.
Geschrieben am: 20.11.2009 13:31:28

Hallo,

ja, das ist manchmal sehr verwirrend, wann welches Ereignis warum ausgelöst wird.

Weiß noch so ungefähr, wie das gelöst wird, aber nicht mehr genau, deswegen nur mal so der Ansatz.

Du musst dir einen Boolean Variable definieren und vor einem gewollten Aufruf diese auf True setzen.
Im Code von Change musst Du dann die Variable prüfen, dann kannst du entsprechend reagieren.

Hoffe, das hat dir geholfen.

Gruß
Björn B.


  

Betrifft: Danke NoNet. von: Björn B.
Geschrieben am: 20.11.2009 13:32:26

Da warst du eindeutig schneller und besser als ich...

Gruß
Björn B.


  

Betrifft: AW: Change Ereigniss verhindern von: Horst
Geschrieben am: 20.11.2009 13:35:24

Hallo,
eigentlich habe ich erwartet einen direkten Befehl zu erwarten.
Aber über den von Euch beschriebenen Trick klappt das natürlich auch.

Vielen Dank Ihr habt mir geholfen.
Gruß Horst


  

Betrifft: AW: Change Ereigniss verhindern von: Björn B.
Geschrieben am: 20.11.2009 13:40:31

Hallo Horst,

eigentlich habe ich erwartet einen direkten Befehl zu erwarten.
Den gibt es leider nicht, sonst würde sich wahrscheinlich niemand so einen Trick überlegen ;-)

Warum auch immer funktioniert das EnableEvents nicht in UserForms.
Damit müssen wir alle kämpfen.

Gruß
Björn B.


Beiträge aus den Excel-Beispielen zum Thema "Change Ereigniss verhindern"