Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
944to948
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
944to948
944to948
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Click-Ereignis für Checlbox nicht ausführen?
01.02.2008 16:26:25
Jens
hallo liebe forums-gemeinde,
ich ängere über vba den wert für ein kontrollkästchen (steuerelement-toolbox). ändert sich dabei der status (true auf false oder false auf true), dann wird automatisch das click-ereignis für dieses kontrollkästchen aufgerufen.
lässt sich das irgendwie unterbinden?
d.h.: das click-ereignis soll nur aufgerufen werden, wenn das kontrollkästchen über das arbeitsblatt geklickt wird, aber nicht bei änderungen des wertes im vba-code.
hab bei meinen recherchen keine möglichkeit gefunden. vielleicht könnt ihr mir weiterhelfen.
vielen dank sagt
der jens

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

Betreff
Datum
Anwender
Anzeige
AW: Click-Ereignis für Checlbox nicht ausführen?
01.02.2008 16:45:56
Detlef
Hi,
poste mal den Code, der das Ereignis auslöst.
mfg Detlef

AW: Click-Ereignis für Checlbox nicht ausführen?
01.02.2008 17:08:48
Jens
hallo detlef,
hier der codeausschnitt:

Public Sub ShowAllCheckBoxes()
Dim oWks As Worksheet
Dim oOLEobj As OLEObject
On Error Resume Next
For Each oWks In ActiveWorkbook.Worksheets
For Each oOLEobj In oWks.OLEObjects
' show all checkboxes
If TypeName(oOLEobj.Object) = "CheckBox" Then _
oOLEobj.Object = True
Next oOLEobj
Next oWks
Set oWks = Nothing
Set oOLEobj = Nothing
End Sub


AW: Click-Ereignis für Checlbox nicht ausführen?
01.02.2008 17:22:17
Detlef
Hi,
ich geh mal davon aus, dass der Code in einem Standardmodul steht:
Public jetzt_nicht as Boolean

Public Sub ShowAllCheckBoxes()
Dim oWks As Worksheet
Dim oOLEobj As OLEObject
On Error Resume Next
jetzt_nicht = True
For Each oWks In ActiveWorkbook.Worksheets
For Each oOLEobj In oWks.OLEObjects
' show all checkboxes
If TypeName(oOLEobj.Object) = "CheckBox" Then _
oOLEobj.Object = True
Next oOLEobj
Next oWks
Set oWks = Nothing
Set oOLEobj = Nothing
jetzt_nicht = False
End Sub


In die Codes der Boxen dann am Anfang folgende Zeile am Anfan:
If jetzt_nicht Then Exit Sub
mfg Detlef

Anzeige
AW: Click-Ereignis für Checlbox nicht ausführen?
01.02.2008 17:22:10
Matthias
Hallo Jens,
an sich macht das ja Sinn, leider ist der Ereignis nicht durch Application.EnableEvents= False abschaltbar.
Du kannst es aber (etwas aufwendiger) so machen:
- In einem "normalen" Modul definierst du ganz oben vor den Przeduren eine globale Variable:

Public NOCLICK As Boolean


Die Prozedur (und alle, die den Checkbox-Wert ändern, aber kein OnClick-Ereignis auslösen wollen, änderst du auf diese Weise:


Public Sub ShowAllCheckBoxes()
Dim oWks As Worksheet
Dim oOLEobj As OLEObject
On Error Resume Next
NOCLICK = True '############ NEU
For Each oWks In ActiveWorkbook.Worksheets
For Each oOLEobj In oWks.OLEObjects
' show all checkboxes
If TypeName(oOLEobj.Object) = "CheckBox" Then _
oOLEobj.Object = True
Next oOLEobj
Next oWks
NOCLICK = False '############ NEU
Set oWks = Nothing
Set oOLEobj = Nothing
End Sub


Und in die ganzen OnClick-Prozeduren stellst du ganz am Anfang die Zeile If NOCLICK Then Exit Sub, also z.B. so:


Private Sub CheckBox1_Click()
If NOCLICK Then Exit Sub
MsgBox "CheckBox1 Klick!"
End Sub
Private Sub CheckBox2_Click()
If NOCLICK Then Exit Sub
MsgBox "CheckBox2 Klick!"
End Sub


Gruß Matthias

Anzeige
AW: Click-Ereignis für Checlbox nicht ausführen?
01.02.2008 18:46:18
Jens
hallo matthias und detlef,
danke für eure antworten, die ja im prinzip das gleiche vorschlagen. schade, dass es nicht ohne diesen nicht wirklich eleganten umweg geht. aber hauptsache es funktioniert! ;-)
danke nochmal für eure hilfe!
der jens

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige