Herbers Excel-Forum - das Archiv

Zeitliches Problem bei Inkrement

Bild

Betrifft: Zeitliches Problem bei Inkrement
von: Robert

Geschrieben am: 12.04.2005 14:37:35
Hallö,
bei einem Makro ist mir etwas seltsames aufgefallen. Der Makro sollte bei einem Klick auf einen Command Button auf diesem die jeweils nächste Primzahl ausgeben, anfangend mit 1.
Das Problem ist, dass der Makro die Berechnung - je nach Klickgeschwindigkeit - teilweise nicht durchgeführt wurde. Im Debugger-Modus oder bei sehr langsamer Klickgeschwindigkeit hat es richtig funktioniert.
Hat man zu normal bis schnell geklickt, wurde die Berechnung nicht immer ausgeführt, die Beschriftung des Buttons änderte sich nicht.
Man kann das Problem vereinfachen, die Auswirkung ist die selbe:
'######################################################
Option Explicit
Dim zahl As Integer
Private Sub cmd_1_Click()
'Variable <zahl> wird um den Wert 1 inkrementiert
zahl = zahl + 1
'Die inkrementierte Variable <zahl> wird
'auf dem Command Button cmd_1 ausgegeben
cmd_1.Caption = zahl
End Sub

'######################################################
Anscheinend hat man eine zeitliche Begrenzung für den Zugriff auf eine Variable über einen Command Button. Gibts eine Lösung dafür?
Bild

Betrifft: AW: Zeitliches Problem bei Inkrement
von: Lars

Geschrieben am: 12.04.2005 14:46:19
Hi,
Option Explicit
Dim zahl As Integer, bb As Boolean
Private Sub cmd_1_Click()
If bb Then Exit Sub
bb = True
'Variable <zahl> wird um den Wert 1 inkrementiert
zahl = zahl + 1
'Die inkrementierte Variable <zahl> wird
'auf dem Command Button cmd_1 ausgegeben
cmd_1.Caption = zahl
bb = False
End Sub
Mit freundlichen Grüßen Lars

Bild

Betrifft: AW: Zeitliches Problem bei Inkrement
von: Robert
Geschrieben am: 12.04.2005 15:35:52
Hallo, danke für die schnelle Antwort.
Leider funktioniert es so auch nicht ...
Bild

Betrifft: AW: Zeitliches Problem bei Inkrement
von: Lars
Geschrieben am: 12.04.2005 15:44:51
Hi,
das funktioniert natürlich nur solange die Mappe geöffnet ist. Beim nächsten
Öffnen gehts wieder bei 0 los.
mfg Lars
Bild

Betrifft: AW: Zeitliches Problem bei Inkrement
von: EtoPHG

Geschrieben am: 12.04.2005 15:44:31
Hallo Robert,
Das Problem liegt in der Abwicklung, d.h. bei schneller Klickgeschwindigkeit wird der DblClick-Event angesprochen, d.h. bei jedem 2ten Klick wird der Code nicht angesprochen.
Füge noch eine zusätzliche Routine
Private Sub cmd_1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
zahl = zahl + 1
cmd_1_.Caption = zahl
End Sub

ein. Dann funktionierts besser.
Gruss Hansueli
Bild

Betrifft: AW: Zeitliches Problem bei Inkrement
von: Robert

Geschrieben am: 12.04.2005 16:02:53
Hallo,
ich habe jetzt noch die sub
Private Sub cmd_1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Call cmd_1_Click
End Sub

eingefügt! Jetzt funktionierts! Danke für den tipp!
Gruß Robert, tschöö
 Bild
Excel-Beispiele zum Thema "Zeitliches Problem bei Inkrement"
Verschnittproblem mit Solver lösen