fonction Timer vide, problème ???

fonction Timer vide, problème ??? - VB/VBA/VBS - Programmation

Marsh Posté le 29-01-2006 à 22:00:38    

Bonjour,
--------------------------
Dim chrono As Single
Private Sub Form_Load()
    chrono = timer
End Sub
------------------------
 
Avec ce code très très simple, est bien timer ne renvoie aucune valeur. Et quand je fais tourner le programme pas à pas , il m'indique bien que "Timer=vide". Je ne comprend pas. Normalement il est sensé de donner un nombre entre 0 à 65xxx. Mais non rien, néant.
Es ce quelqun aurait la réponse à mon mystère ?
 
Merci.

Reply

Marsh Posté le 29-01-2006 à 22:00:38   

Reply

Marsh Posté le 01-02-2006 à 12:00:29    

Salut  
A mon avis "timer" n'est pas reconnu puisqu'il s'écrit normalement avec un T.  
 
Donc il considère sûrement que tu as 2 variables (non déclarées mais pas en erreur)avec une affectation de B sur A
 
a+


Message édité par maddraft le 01-02-2006 à 12:00:59
Reply

Marsh Posté le 01-02-2006 à 12:51:17    

Je ne pense pas.
Voila un autre exemple qui montre qu'il y a un problème :
-----------
Dim reponse
reponse=MsgBox("seconde :" & timer)
-----------
Résultat obtenu : "seconde : 0"
 
Et je tiens à signaler quand je tape "Timer", il me change automatiquement par "timer".
 
Pouvez-vous m'aidez car j'ai besoin de chronométrer un temps entre deux évenements. Merci

Reply

Marsh Posté le 01-02-2006 à 12:52:13    

Je tiens à rajouter que "timer" marche très bien en VBA sous excel.
Alors pourquoi ca ne marche pas sur VB6 ?

Reply

Marsh Posté le 01-02-2006 à 20:43:10    

Y a pas de problème....
 
Sans vouloir te froisser, apprend à être plus précis quand tu pose une question... Ensuite Compare sur des environnements identiques pour qu'il y ait du sens : VB6 n'est pas VBA!
 
As tu fais une recherche avec l'explorateur d'objet sur Timer dans VB6 et dans VBA ? As tu lu un peu la doc ?
 
J'utilise les fonctionalités Timer sur vb6... et j'ai pas de galère. Je ne les utilise pas comme toi non plus... mais à partir d'un ocx. Et je n'ai pas non plus besoin de récupérer une valeur.
 
Pour ce qui est des fonctions sous VB pour récupérer le temps, et ainsi des écarts de temps on utilise plutôt les API windows.
 
By


Message édité par maddraft le 01-02-2006 à 20:45:57
Reply

Marsh Posté le 04-02-2006 à 22:40:01    

Je vois ce que tu veux dire, pour toi timer c'est seulement un objet.
 
Mais d'après un livre VB6, il existe une fonction que l'on peut appeler sans rajouter aucun objet, qui est Timer et qui renvoie le nombre de seconde qui s'est écoulé depuis minuit.  
Ce que je veux dire c'est quand VBA ca marche mais pas en VB6.
 
Es ce que tu peux être plus explicite quand tu dis :
 
Pour ce qui est des fonctions sous VB pour récupérer le temps, et ainsi des écarts de temps on utilise plutôt les API windows.
 
Peux-tu être plus précis ?
Merci.
 
Désoler je ne suis pas toujours très claire.

Reply

Marsh Posté le 05-02-2006 à 08:35:19    

Bonjour,
 
Curieux, que Timer ne fonctionne pas ! A défaut on peut passer par l 'API GetTickCount qui donne le nombre de millisecondes écoulées depuis le démarrage du système.
 
Private Declare Function GetTickCount Lib "kernel32" () As Long
 
Sub Exemple()
début = GetTickCount()
    For i = 0 To 1000000: Next
fin = GetTickCount()
MsgBox fin - début & " millisecondes"
End Sub
 
Cordialement
 
Epéna

Reply

Marsh Posté le 05-02-2006 à 08:42:30    

Si timer se met toujours en minuscule, c'est qu'il a été déclaré dans le projet comme variable. Comme la variable n'a pas été initialisée, elle renvoie 0.
 
Epéna

Reply

Marsh Posté le 05-02-2006 à 09:58:44    

Salut les matineux... ;)  
 

Citation :


Donc il considère sûrement que tu as 2 variables (non déclarées mais pas en erreur)avec une affectation de B sur A  


 
J'ai pas été clair sur ce coup... Merci epena
 
A défaut d'avoir installé une autre visionneuse d'api, si tu as installé les outils de VB6 tu trouvera normalement une visionneuse d'api accessible dans demarrer/../VB6/Outils VB6.
 
On charge le par le menu fichier/charger le fichier text/... le type d'apicorrexpondante.  
 
Les api génériques sont dans winApi.txt
 
tu trouveras la syntaxe pour la déclarer dans ton projet
Public Declare Function GetTickCount Lib "kernel32" Alias "GetTickCount" () As Long
 
@+

Reply

Marsh Posté le 05-02-2006 à 10:08:56    

... Complément de cogitation :
 
Ceci étant, si tu fais bien la différence entre VB6 et VBA, alors tu es à même de comprendre que si tu veux utilser les fonctionalités de VBA, tu dois forcément associé VBA comme référence à ton projet... Une recherche Timer dans l'explorateur d'oibjet doit te retourner :
Property Timer As Single
    Lecture seule
    Membre de VBA.DateTime
    Renvoie le nombre de secondes écoulées depuis minuit

 
 
Mais si tu as déclaré une variable timer, alors tu dois typer l'appel de ta la fonction : a = VBA.timer
 
Après c'est un choix, si c'est juste pour utiliser la fonction Timer de VBA alors je trouve l'utilisation de l'api appropriée plus simple.


Message édité par maddraft le 05-02-2006 à 10:20:30
Reply

Marsh Posté le 05-02-2006 à 10:08:56   

Reply

Marsh Posté le 05-02-2006 à 10:13:12    

Merci tout marche.

Reply

Marsh Posté le 05-02-2006 à 10:25:33    

c'est le bonheur

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed