Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème avec le chronomètre...

7 réponses
Avatar
Astucemobile
Bonjour,

Je tente vainement d'utiliser le chronomètre proposé par Frédéric Sigonneau,
Denis Michon, (N°1328)
Mais voilà je suis confronté à un problème.
J'ai parfaitement réalisé la manipulation et le résultat fonctionne sur mon
PC perso (Win XP et Office 2000)
Mais sur mon PC de travail (Excel 97) rien à faire ça ne fonctionne pas. (PC
d'entreprise en réseau)
J'ai pourtant chargé le contrôle IEtimer trouvé sur le net... mais toujours
rien.

Le problème est le suivant :
Je clique sur le bouton qui lance l'affichage du chronomètre, je clique sur
START et là ça plante et le message suivant apparait :
Erreur de Compilation
Erreur de Syntaxe
Et en arrière plan dans l'affichage de visual basic et en surbrillance cette
ligne en jaune :
Sub TimerOn(Interval As Long)
et celle si en noir :
TimerID = SetTimer(0, 0, Interval, AddressOf Chrono)

Si quelqu'un peut me venir en aide sachant que mes compétences sont limités
à un simple utilisateur.

Merci

Christophe B.

7 réponses

Avatar
Michel Pierron
Bonjour Astucemobile
L'opérateur AddressOf n'est pas utilisable avec la version Excel97.
MP

"Astucemobile" a écrit dans le
message de news:
Bonjour,

Je tente vainement d'utiliser le chronomètre proposé par Frédéric
Sigonneau,

Denis Michon, (N°1328)
Mais voilà je suis confronté à un problème.
J'ai parfaitement réalisé la manipulation et le résultat fonctionne sur
mon

PC perso (Win XP et Office 2000)
Mais sur mon PC de travail (Excel 97) rien à faire ça ne fonctionne pas.
(PC

d'entreprise en réseau)
J'ai pourtant chargé le contrôle IEtimer trouvé sur le net... mais
toujours

rien.

Le problème est le suivant :
Je clique sur le bouton qui lance l'affichage du chronomètre, je clique
sur

START et là ça plante et le message suivant apparait :
Erreur de Compilation
Erreur de Syntaxe
Et en arrière plan dans l'affichage de visual basic et en surbrillance
cette

ligne en jaune :
Sub TimerOn(Interval As Long)
et celle si en noir :
TimerID = SetTimer(0, 0, Interval, AddressOf Chrono)

Si quelqu'un peut me venir en aide sachant que mes compétences sont
limités

à un simple utilisateur.

Merci

Christophe B.


Avatar
Astucemobile
Merci, mais y a t'il alors une autre solution ?

Christophe


Bonjour Astucemobile
L'opérateur AddressOf n'est pas utilisable avec la version Excel97.
MP

"Astucemobile" a écrit dans le
message de news:
Bonjour,

Je tente vainement d'utiliser le chronomètre proposé par Frédéric
Sigonneau,

Denis Michon, (N°1328)
Mais voilà je suis confronté à un problème.
J'ai parfaitement réalisé la manipulation et le résultat fonctionne sur
mon

PC perso (Win XP et Office 2000)
Mais sur mon PC de travail (Excel 97) rien à faire ça ne fonctionne pas.
(PC

d'entreprise en réseau)
J'ai pourtant chargé le contrôle IEtimer trouvé sur le net... mais
toujours

rien.

Le problème est le suivant :
Je clique sur le bouton qui lance l'affichage du chronomètre, je clique
sur

START et là ça plante et le message suivant apparait :
Erreur de Compilation
Erreur de Syntaxe
Et en arrière plan dans l'affichage de visual basic et en surbrillance
cette

ligne en jaune :
Sub TimerOn(Interval As Long)
et celle si en noir :
TimerID = SetTimer(0, 0, Interval, AddressOf Chrono)

Si quelqu'un peut me venir en aide sachant que mes compétences sont
limités

à un simple utilisateur.

Merci

Christophe B.







Avatar
anonymousA
Bonjour,

en cherchant un peu sur le site de Frédéric Sigonneau, il existe une
procédure permettant de simuler AddressOf. Je ne sais plus à quel
endroit mais je te garantis que ca existe.

A+


Merci, mais y a t'il alors une autre solution ?

Christophe



Bonjour Astucemobile
L'opérateur AddressOf n'est pas utilisable avec la version Excel97.
MP

"Astucemobile" a écrit dans le
message de news:

Bonjour,

Je tente vainement d'utiliser le chronomètre proposé par Frédéric


Sigonneau,

Denis Michon, (N°1328)
Mais voilà je suis confronté à un problème.
J'ai parfaitement réalisé la manipulation et le résultat fonctionne sur


mon

PC perso (Win XP et Office 2000)
Mais sur mon PC de travail (Excel 97) rien à faire ça ne fonctionne pas.


(PC

d'entreprise en réseau)
J'ai pourtant chargé le contrôle IEtimer trouvé sur le net... mais


toujours

rien.

Le problème est le suivant :
Je clique sur le bouton qui lance l'affichage du chronomètre, je clique


sur

START et là ça plante et le message suivant apparait :
Erreur de Compilation
Erreur de Syntaxe
Et en arrière plan dans l'affichage de visual basic et en surbrillance


cette

ligne en jaune :
Sub TimerOn(Interval As Long)
et celle si en noir :
TimerID = SetTimer(0, 0, Interval, AddressOf Chrono)

Si quelqu'un peut me venir en aide sachant que mes compétences sont


limités

à un simple utilisateur.

Merci

Christophe B.









Avatar
Michel Pierron
Re Astucemobile;
Simplifie en utilisant la fonction Timer de Excel.
Dans ton module UserForm:
Option Explicit
Private Declare Function FindWindow Lib "user32" _
Alias "FindWindowA" (ByVal lpClassName As String _
, ByVal lpWindowName As String) As Long
Private Declare Function EnableWindow Lib "user32" _
(ByVal hwnd As Long, ByVal fEnable As Long) As Long
Private EnMarche As Boolean

Private Sub CommandButton1_Click()
Me.Repaint
If EnMarche Then Exit Sub
EnMarche = True
Call Chrono
End Sub

Private Sub CommandButton2_Click()
EnMarche = False
End Sub

Private Sub CommandButton3_Click()
EnMarche = False
Label1.Caption = "00:00:00"
Label2.Caption = "0"
End Sub

Private Sub UserForm_Initialize()
Dim hwnd&
hwnd = FindWindow(vbNullString, Application.Caption)
EnMarche = False
Label1.Caption = "00:00:00"
Label2.Caption = "0"
End Sub

Private Sub UserForm_Terminate()
EnMarche = False
Unload Me
End Sub

Private Sub Chrono()
Dim H As Single, DS As Byte, S As Single
1: DS = CByte(Me.Label2.Caption) + 1
UserForm1.Label2.Caption = DS
S = Timer + 1 / 10
While Timer < S: DoEvents: Wend
If (DS Mod 10) = 0 Then
H = TimeValue(Me.Label1.Caption) + TimeSerial(0, 0, 1)
Me.Label1.Caption = Format(H, "hh:mm:ss")
Me.Label2.Caption = "0"
End If
If EnMarche Then GoTo 1 Else Exit Sub
End Sub

Dans ton module standard:
Sub TestChrono()
#If VBA6 Then
UserForm1.Show 0
#Else
UserForm1.Show
#End If
End Sub

La fonction API EnableWindow permet de travailler dans la feuille avec
Excel97 avec lequel la propriété Modal est inconnue.

MP

"Michel Pierron" a écrit dans le message de news:
eb4$
Bonjour Astucemobile
L'opérateur AddressOf n'est pas utilisable avec la version Excel97.
MP

"Astucemobile" a écrit dans le
message de news:
Bonjour,

Je tente vainement d'utiliser le chronomètre proposé par Frédéric
Sigonneau,

Denis Michon, (N°1328)
Mais voilà je suis confronté à un problème.
J'ai parfaitement réalisé la manipulation et le résultat fonctionne sur
mon

PC perso (Win XP et Office 2000)
Mais sur mon PC de travail (Excel 97) rien à faire ça ne fonctionne pas.
(PC

d'entreprise en réseau)
J'ai pourtant chargé le contrôle IEtimer trouvé sur le net... mais
toujours

rien.

Le problème est le suivant :
Je clique sur le bouton qui lance l'affichage du chronomètre, je clique
sur

START et là ça plante et le message suivant apparait :
Erreur de Compilation
Erreur de Syntaxe
Et en arrière plan dans l'affichage de visual basic et en surbrillance
cette

ligne en jaune :
Sub TimerOn(Interval As Long)
et celle si en noir :
TimerID = SetTimer(0, 0, Interval, AddressOf Chrono)

Si quelqu'un peut me venir en aide sachant que mes compétences sont
limités

à un simple utilisateur.

Merci

Christophe B.






Avatar
Michel Pierron
Re Astucemobile;
Je n'ai pas xl97, mais je crois qu'il serait préférable d'activer
l'application lors de l'affichage de l'UserForm comme suit:
Private Sub UserForm_Activate()
Dim hwnd&
hwnd = FindWindow(vbNullString, Application.Caption)
End Sub

MP

"Michel Pierron" a écrit dans le message de news:

Re Astucemobile;
Simplifie en utilisant la fonction Timer de Excel.
Dans ton module UserForm:
Option Explicit
Private Declare Function FindWindow Lib "user32" _
Alias "FindWindowA" (ByVal lpClassName As String _
, ByVal lpWindowName As String) As Long
Private Declare Function EnableWindow Lib "user32" _
(ByVal hwnd As Long, ByVal fEnable As Long) As Long
Private EnMarche As Boolean

Private Sub CommandButton1_Click()
Me.Repaint
If EnMarche Then Exit Sub
EnMarche = True
Call Chrono
End Sub

Private Sub CommandButton2_Click()
EnMarche = False
End Sub

Private Sub CommandButton3_Click()
EnMarche = False
Label1.Caption = "00:00:00"
Label2.Caption = "0"
End Sub

Private Sub UserForm_Initialize()
Dim hwnd&
hwnd = FindWindow(vbNullString, Application.Caption)
EnMarche = False
Label1.Caption = "00:00:00"
Label2.Caption = "0"
End Sub

Private Sub UserForm_Terminate()
EnMarche = False
Unload Me
End Sub

Private Sub Chrono()
Dim H As Single, DS As Byte, S As Single
1: DS = CByte(Me.Label2.Caption) + 1
UserForm1.Label2.Caption = DS
S = Timer + 1 / 10
While Timer < S: DoEvents: Wend
If (DS Mod 10) = 0 Then
H = TimeValue(Me.Label1.Caption) + TimeSerial(0, 0, 1)
Me.Label1.Caption = Format(H, "hh:mm:ss")
Me.Label2.Caption = "0"
End If
If EnMarche Then GoTo 1 Else Exit Sub
End Sub

Dans ton module standard:
Sub TestChrono()
#If VBA6 Then
UserForm1.Show 0
#Else
UserForm1.Show
#End If
End Sub

La fonction API EnableWindow permet de travailler dans la feuille avec
Excel97 avec lequel la propriété Modal est inconnue.

MP

"Michel Pierron" a écrit dans le message de news:
eb4$
Bonjour Astucemobile
L'opérateur AddressOf n'est pas utilisable avec la version Excel97.
MP

"Astucemobile" a écrit dans le
message de news:
Bonjour,

Je tente vainement d'utiliser le chronomètre proposé par Frédéric
Sigonneau,

Denis Michon, (N°1328)
Mais voilà je suis confronté à un problème.
J'ai parfaitement réalisé la manipulation et le résultat fonctionne
sur



mon
PC perso (Win XP et Office 2000)
Mais sur mon PC de travail (Excel 97) rien à faire ça ne fonctionne
pas.



(PC
d'entreprise en réseau)
J'ai pourtant chargé le contrôle IEtimer trouvé sur le net... mais
toujours

rien.

Le problème est le suivant :
Je clique sur le bouton qui lance l'affichage du chronomètre, je
clique



sur
START et là ça plante et le message suivant apparait :
Erreur de Compilation
Erreur de Syntaxe
Et en arrière plan dans l'affichage de visual basic et en surbrillance
cette

ligne en jaune :
Sub TimerOn(Interval As Long)
et celle si en noir :
TimerID = SetTimer(0, 0, Interval, AddressOf Chrono)

Si quelqu'un peut me venir en aide sachant que mes compétences sont
limités

à un simple utilisateur.

Merci

Christophe B.










Avatar
Astucemobile
Merci beaucoup car maintenant ça fonctionne PRESQUE bien !
Je dis presque parceque je n'arrive pas dans les propriétés de mon Userform
à faire que mon chrono tourne et que je puisse en même temps naviguer et
utiliser mon classeur Excel.
Il existe bien la case ShowModal à mettre sur False, mais encore une fois
sir cette version d'excel 97, elle n'apparait pas...

Une solution à me proposer peut'être ?

Et merci encore pour l'aide TRES efficace.

Christophe


Re Astucemobile;
Je n'ai pas xl97, mais je crois qu'il serait préférable d'activer
l'application lors de l'affichage de l'UserForm comme suit:
Private Sub UserForm_Activate()
Dim hwnd&
hwnd = FindWindow(vbNullString, Application.Caption)
End Sub

MP

"Michel Pierron" a écrit dans le message de news:

Re Astucemobile;
Simplifie en utilisant la fonction Timer de Excel.
Dans ton module UserForm:
Option Explicit
Private Declare Function FindWindow Lib "user32" _
Alias "FindWindowA" (ByVal lpClassName As String _
, ByVal lpWindowName As String) As Long
Private Declare Function EnableWindow Lib "user32" _
(ByVal hwnd As Long, ByVal fEnable As Long) As Long
Private EnMarche As Boolean

Private Sub CommandButton1_Click()
Me.Repaint
If EnMarche Then Exit Sub
EnMarche = True
Call Chrono
End Sub

Private Sub CommandButton2_Click()
EnMarche = False
End Sub

Private Sub CommandButton3_Click()
EnMarche = False
Label1.Caption = "00:00:00"
Label2.Caption = "0"
End Sub

Private Sub UserForm_Initialize()
Dim hwnd&
hwnd = FindWindow(vbNullString, Application.Caption)
EnMarche = False
Label1.Caption = "00:00:00"
Label2.Caption = "0"
End Sub

Private Sub UserForm_Terminate()
EnMarche = False
Unload Me
End Sub

Private Sub Chrono()
Dim H As Single, DS As Byte, S As Single
1: DS = CByte(Me.Label2.Caption) + 1
UserForm1.Label2.Caption = DS
S = Timer + 1 / 10
While Timer < S: DoEvents: Wend
If (DS Mod 10) = 0 Then
H = TimeValue(Me.Label1.Caption) + TimeSerial(0, 0, 1)
Me.Label1.Caption = Format(H, "hh:mm:ss")
Me.Label2.Caption = "0"
End If
If EnMarche Then GoTo 1 Else Exit Sub
End Sub

Dans ton module standard:
Sub TestChrono()
#If VBA6 Then
UserForm1.Show 0
#Else
UserForm1.Show
#End If
End Sub

La fonction API EnableWindow permet de travailler dans la feuille avec
Excel97 avec lequel la propriété Modal est inconnue.

MP

"Michel Pierron" a écrit dans le message de news:
eb4$
Bonjour Astucemobile
L'opérateur AddressOf n'est pas utilisable avec la version Excel97.
MP

"Astucemobile" a écrit dans le
message de news:
Bonjour,

Je tente vainement d'utiliser le chronomètre proposé par Frédéric
Sigonneau,

Denis Michon, (N°1328)
Mais voilà je suis confronté à un problème.
J'ai parfaitement réalisé la manipulation et le résultat fonctionne
sur



mon
PC perso (Win XP et Office 2000)
Mais sur mon PC de travail (Excel 97) rien à faire ça ne fonctionne
pas.



(PC
d'entreprise en réseau)
J'ai pourtant chargé le contrôle IEtimer trouvé sur le net... mais
toujours

rien.

Le problème est le suivant :
Je clique sur le bouton qui lance l'affichage du chronomètre, je
clique



sur
START et là ça plante et le message suivant apparait :
Erreur de Compilation
Erreur de Syntaxe
Et en arrière plan dans l'affichage de visual basic et en surbrillance
cette

ligne en jaune :
Sub TimerOn(Interval As Long)
et celle si en noir :
TimerID = SetTimer(0, 0, Interval, AddressOf Chrono)

Si quelqu'un peut me venir en aide sachant que mes compétences sont
limités

à un simple utilisateur.

Merci

Christophe B.















Avatar
Michel Pierron
Re Astucemobile;
Excuse moi, je n'étais pas allé jusqu'au bout; si tu as bien respecté les
déclarations FindWindow et EnableWindow, avec la procédure suivante, ça
devrait le faire:

Private Sub UserForm_Activate()
Dim hwnd&
hwnd = FindWindow(vbNullString, Application.Caption)
EnableWindow hwnd,1
End Sub

MP

"Astucemobile" a écrit dans le
message de news:
Merci beaucoup car maintenant ça fonctionne PRESQUE bien !
Je dis presque parceque je n'arrive pas dans les propriétés de mon
Userform

à faire que mon chrono tourne et que je puisse en même temps naviguer et
utiliser mon classeur Excel.
Il existe bien la case ShowModal à mettre sur False, mais encore une fois
sir cette version d'excel 97, elle n'apparait pas...

Une solution à me proposer peut'être ?

Et merci encore pour l'aide TRES efficace.

Christophe


Re Astucemobile;
Je n'ai pas xl97, mais je crois qu'il serait préférable d'activer
l'application lors de l'affichage de l'UserForm comme suit:
Private Sub UserForm_Activate()
Dim hwnd&
hwnd = FindWindow(vbNullString, Application.Caption)
End Sub

MP

"Michel Pierron" a écrit dans le message de
news:



Re Astucemobile;
Simplifie en utilisant la fonction Timer de Excel.
Dans ton module UserForm:
Option Explicit
Private Declare Function FindWindow Lib "user32" _
Alias "FindWindowA" (ByVal lpClassName As String _
, ByVal lpWindowName As String) As Long
Private Declare Function EnableWindow Lib "user32" _
(ByVal hwnd As Long, ByVal fEnable As Long) As Long
Private EnMarche As Boolean

Private Sub CommandButton1_Click()
Me.Repaint
If EnMarche Then Exit Sub
EnMarche = True
Call Chrono
End Sub

Private Sub CommandButton2_Click()
EnMarche = False
End Sub

Private Sub CommandButton3_Click()
EnMarche = False
Label1.Caption = "00:00:00"
Label2.Caption = "0"
End Sub

Private Sub UserForm_Initialize()
Dim hwnd&
hwnd = FindWindow(vbNullString, Application.Caption)
EnMarche = False
Label1.Caption = "00:00:00"
Label2.Caption = "0"
End Sub

Private Sub UserForm_Terminate()
EnMarche = False
Unload Me
End Sub

Private Sub Chrono()
Dim H As Single, DS As Byte, S As Single
1: DS = CByte(Me.Label2.Caption) + 1
UserForm1.Label2.Caption = DS
S = Timer + 1 / 10
While Timer < S: DoEvents: Wend
If (DS Mod 10) = 0 Then
H = TimeValue(Me.Label1.Caption) + TimeSerial(0, 0, 1)
Me.Label1.Caption = Format(H, "hh:mm:ss")
Me.Label2.Caption = "0"
End If
If EnMarche Then GoTo 1 Else Exit Sub
End Sub

Dans ton module standard:
Sub TestChrono()
#If VBA6 Then
UserForm1.Show 0
#Else
UserForm1.Show
#End If
End Sub

La fonction API EnableWindow permet de travailler dans la feuille avec
Excel97 avec lequel la propriété Modal est inconnue.

MP

"Michel Pierron" a écrit dans le message de
news:



eb4$
Bonjour Astucemobile
L'opérateur AddressOf n'est pas utilisable avec la version Excel97.
MP

"Astucemobile" a écrit dans
le




message de news:





Bonjour,

Je tente vainement d'utiliser le chronomètre proposé par Frédéric
Sigonneau,

Denis Michon, (N°1328)
Mais voilà je suis confronté à un problème.
J'ai parfaitement réalisé la manipulation et le résultat
fonctionne





sur
mon
PC perso (Win XP et Office 2000)
Mais sur mon PC de travail (Excel 97) rien à faire ça ne
fonctionne





pas.
(PC
d'entreprise en réseau)
J'ai pourtant chargé le contrôle IEtimer trouvé sur le net... mais
toujours

rien.

Le problème est le suivant :
Je clique sur le bouton qui lance l'affichage du chronomètre, je
clique



sur
START et là ça plante et le message suivant apparait :
Erreur de Compilation
Erreur de Syntaxe
Et en arrière plan dans l'affichage de visual basic et en
surbrillance





cette
ligne en jaune :
Sub TimerOn(Interval As Long)
et celle si en noir :
TimerID = SetTimer(0, 0, Interval, AddressOf Chrono)

Si quelqu'un peut me venir en aide sachant que mes compétences
sont





limités
à un simple utilisateur.

Merci

Christophe B.