Microsoft Excel

Herbers Excel/VBA-Archiv

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

change event "ausschalten"

Betrifft: change event "ausschalten" von: Tinu
Geschrieben am: 23.08.2005 15:35:02

Liebe Excel-Gemeinde

Per VBA-Code setze ich den Wert eines Drehfeldes (SpinButton) auf "0". Dabei wird nun aber der change event des SpinButtons ausgelöst und startet einen ganzen Rattenschwanz von Routinen. Gibt es eine Möglichkeit diesen Change Event während des Null-Stellens auszuschalten?

besten Dank für Euere Hilfe
Gruss
Tinu

  


Betrifft: AW: change event "ausschalten" von: Matthias G
Geschrieben am: 23.08.2005 15:43:46

Hallo Tinu,

Application.EnableEvents = False geht hier nicht.

erstelle eine globale Variable (z.B. "NoEvent"), die du auf True stellst, wenn das Change-Event nicht ausgelöst werden soll:
Public NoEvent As Boolean

Sub test()
NoEvent = True
Tabelle1.SpinButton1.Value = 11
NoEvent = False
End Sub


und ins Tabellenblattmodul:
Private Sub SpinButton1_Change()
If NoEvent Then Exit Sub
'dein Code
End Sub


Gruß Matthias


  


Betrifft: AW: change event "ausschalten" von: Tinu
Geschrieben am: 23.08.2005 16:19:50

Hallo Matthias

Vielen Dank für Deine rasche Antwort. Irgendetwas mache ich noch falsch, denn es hilft nichts.
In einem Modul habe ich also folgendes eingefügt:

Sub getAssignments()

On Error GoTo ErrHandler
With Application
.EnableEvents = False
.ScreenUpdating = False
End With

Dim NoEvent As Boolean
NoEvent = True
Worksheets("menu").SpinButton1.Value = 0
NoEvent = False
.....hier mein Code


Im Tabellenblatt habe ich dann diesen Code:

Private Sub SpinButton1_Change()
If NoEvent Then Exit Sub
Application.Run "movetable"
End Sub


Kanns Du mir sagen, was daran falsch ist?
Gruss
Tinu


  


Betrifft: AW: change event "ausschalten" von: Matthias G
Geschrieben am: 23.08.2005 16:28:46

Hallo Tinu,

die Deklaration von NoEvent muss in ein normales Modul außerhalb aller Prozeduen, am besten an den Anfang:
Public NoEvent As Boolean

Nur dann ist die Variable in der ganzen Mappe bekannt.

Tip: aktiviere in VB-Editor unter "Extras, Optionen", Karte "Editor" den Haken bei "Variablendeklaration erforderlich". Das stellt an den Anfang jedes neuen Moduls ein "Option Explicit", und dann wäre bei deinem Lösungsversuch im Code des Tabellenblattes der Fehler "Variable nicht deklariert" gekommen.
Zwingt insgesamt zu sauberer Programmierung, lässt manche Fehler leichter erkennen.

Gruß Matthias


  


Betrifft: AW: change event "ausschalten" von: Tinu
Geschrieben am: 23.08.2005 17:10:11

Ja genau, jetzt klappt's :)))

Vielen Dank für Deine Hilfe und den Tip!

Gruss
Tinu


 

Beiträge aus den Excel-Beispielen zum Thema "change event "ausschalten""