Problème avec un "Timer" que je ne sais pas arrêter.

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

YANN-56

XLDnaute Barbatruc
Bonjour à tous,

Je patine avec le "Timer"........ Voici le Code

Code:
Public TRAJET
Private Sub Label1_Click() ' OUVRIR

Dim DUREE, DEBUT, FIN, TEMPS_PASSE

  DUREE = 4 'le temps en secondes
  DEBUT = Timer: FIN = Timer + DUREE
  
       Do While Timer < DEBUT + DUREE
           DoEvents
        
               TEMPS_PASSE = FIN - Timer
            ' Ceci est accessoire; mais je l'ai laissé pour info.

     '  Me.Image1.Width = TRAJET * (TEMPS_PASSE / DUREE)
     '  Me.Image2.Width = Me.Image1.Width
     '  Me.Image2.Left = TRAJET + (TRAJET - (TRAJET * (TEMPS_PASSE / DUREE)))
       Loop
End Sub

Tout fonctionne comme il faut.

Mais, sauf d'avoir enregistré mon Classeur avant de le fermer:
A la réouverture, j'ai un plantage avec une division par "0" ????? Ici:

Code:
Me.Image1.Width = TRAJET * (TEMPS_PASSE / DUREE)

Je pourrais tenter " ThisWorkbook.Save", mais cela ne convient pas au cheminement de l'appli.

Je pense qu'il faut annihiler le Timer, mais je ne sais pas faire.

Merci de m'aider. Cela fait un grand moment que je tourne en rond.

Yann
 
Re : Problème avec un "Timer" que je ne sais pas arrêter.

Enchanter Yann-56, néné06

Solution en poste # 14

J’ai passé un temps fous a apprendre est j'ai appris beaucoup. Cette fonction est très utiles car cela stop la macro le temps que vous indiquer (ici dans mon exemple = 1 seconde) avant de passer a l'instruction suivante. J’ai eu des cas de folie avec des copier coller entre les formules et les valeurs l'ordi va trop vite et ensuite je me suis servis de cela pour passer de Excel vers Autocad.

C'est plus précis que la première.

Bonne appétit.

Laurent
 
Re : Problème avec un "Timer" que je ne sais pas arrêter.

Bonjour YANN-56 🙂, laurent950,
Si le sujet n'est pas résolu, j'ai trois questions :
dans le code :
VB:
Public TRAJET
Private Sub Label1_Click() ' OUVRIR
Dim DUREE, DEBUT, FIN, TEMPS_PASSE
DUREE = 4 'le temps en secondes
DEBUT = Timer ': FIN = Timer + DUREE
Do While Timer < DEBUT + DUREE
    DoEvents
    TEMPS_PASSE = DEBUT - Timer
    ' Ceci est accessoire; mais je l'ai laissé pour info.
    '  Me.Image1.Width = TRAJET * (TEMPS_PASSE / DUREE)
    '  Me.Image2.Width = Me.Image1.Width
    '  Me.Image2.Left = TRAJET + (TRAJET - (TRAJET * (TEMPS_PASSE / DUREE)))
Loop
End Sub
La ligne
VB:
TEMPS_PASSE = DEBUT - Timer
doit renvoyer un chifre négatif. Est ce le but recherché ?
Quelle est la valeur au début du code de la variable TRAJET ?
As tu essayer de déclarer TRAJET en Private ? (en Public elle est prise en compte par tous les classeurs, il me semble)

Si non peut tu mettre un exemple pour faire des tests ?
Cordialement
 
Re : Problème avec un "Timer" que je ne sais pas arrêter.

Bonjour Yann, le fil,

Je vois que l'on tourne copieusement en rond.

S'il y a bug il faudrait pouvoir le reproduire avec le fichier d'origine !!!

Car le petit fichier que j'ai créé avec la macro du post #1 (et avec les images) ne beugue pas lui...

Normal puisque DUREE = 4 (et a priori ne prend pas d'autre valeur).

Et contrairement au titre du fil (???) le Timer s'arrête toujours au bout de 4 secondes...

Je suis étonné Yann que tu présentes ce problème sans donner plus de détails et sans le fichier.

A+
 
Re : Problème avec un "Timer" que je ne sais pas arrêter.

Bonjour Néné06, Laurent950, Efgé, job75, et à ceux qui passeront par ici,

Pardon pour ne pas avoir répondu hier soir.
J'ai eu une sorte de "saturation" qui m'a rendu incapable de le faire.

Comme vous le dites dans ces deux derniers Posts, un exemple s'impose.
(Voir la dernière ligne de ma signature 🙄)

Cela va me demander un peu de temps,
car il me faut l'extraire d'une appli en chantier et un peu copieuse.

En l'instant je vous dis un grand Merci pour vos aides.

A plus tard,

Yann
 
Re : Problème avec un "Timer" que je ne sais pas arrêter.

Re à tous,

Voici le Classeur exemple... En faire une copie.

En passant de l'un à l'autre pour essais:

J'ai constaté qu'après bug de la première, et ayant attendu quelques secondes;
en ouvrant la deuxième sans activer les macros et en l'enregistrant seulement avant de la fermer:

La première fonctionne à nouveau !!!!........ Il y a un diable dans mon ordi! 😡

A vous lire, et Merci d'avance pour une solution ou une Aspirine. 🙂

Yann
 

Pièces jointes

Dernière édition:
Re : Problème avec un "Timer" que je ne sais pas arrêter.

Merci Pierre-Jean 🙂🙂🙂,

C'est gentil.... Je ne l'ai pas mis, mais l'original à en plus le bruit des rideaux et des Claps.

Je ne doute que tu saches le faire, mais si tu veux un exemple pour ta gouverne: Voir ci-joint.

Amicalement, et au plaisir de te croiser.

Yann

P.S. IL NE FONCTIONNE PAS EN 64 bITS
 

Pièces jointes

Re : Problème avec un "Timer" que je ne sais pas arrêter.

Re, salut pierrejean 🙂

Très beau en effet.

1) Sur mon ordi fixe (Windows XP + Excel 2003) en cliquant sur le Label Ouvrir aucun bug.

Seulement Image100 n'est pas sur l'écran et je dois sortir par Alt+F4.

2) Sur mon portable (Windows 7 + Excel 2010) bug en effet sur :

Code:
Me.Image1.Width = TRAJET * (TEMPS_PASSE / DUREE)
Mais le message n'indique pas une division par zéro, il indique que la largeur de l'image n'est pas >= 0...

Elle est donc négative, sans doute une histoire de calcul de la 15ème décimale quand on est très près de zéro.

Il m'a suffit d'écrire :

Code:
Me.Image1.Width = Abs(TRAJET * (TEMPS_PASSE / DUREE))
pour que tout rentre dans l'ordre.

A+
 
Re : Problème avec un "Timer" que je ne sais pas arrêter.

Re,

En fait avec des calculs précis c'est normal que ça beugue. Regardons en effet :

Code:
Do While Timer < DEBUT + DUREE
           DoEvents
        
               TEMPS_PASSE = FIN - Timer
Quand Timer est tout juste < DEBUT + DUREE c'est à dire à FIN,

on passe à la ligne suivante.

Le temps d'arriver sur la 3ème ligne et Timer devient > FIN...

Et TEMPS_PASSE prend alors une valeur négative => bug sur Image1.

A+
 
Re : Problème avec un "Timer" que je ne sais pas arrêter.

Merci job75,🙂🙂🙂

Effectivement! Le "TEMPS_PASSE" est en négatif, et l'image ne peut pas avoir une largeur inférieure à 0!
Ce n'est pas de ma faute!!! C'est ma presbytie! Je n'avais pas vu... (Que ne ferait-on pas pour éviter la honte?)😱

La jonglerie entre les différentes versions résolvant le problème restera pour moi inexplicable,
mais on n'en a strictement rien à fiche. N'est-il pas?

Tu m'as apporté une solution efficace.

Je te dis un grand de chez grand "Merci", ainsi qu'à ceux qui ont pris la peine de me répondre.

Amicalement à vous tous, en vous souhaitant plein de bonnes choses.

Yann, émerveillé par la clairvoyance de beaucoup d'XLDNautes.
Dont particulièrement la tienne à cette heure.

P.S. Effectivement, il peut y avoir un souci suivant les résolutions d'écran.
Je le contourne par deux solutions:
1) Adapter automatiquement en les capturant (Mais c'est lourd!)
2) En ayant deux ou trois versions, y compris pour un NetBook.
 
Re : Problème avec un "Timer" que je ne sais pas arrêter.

Bonjour à tous,

J'ai pas eu l'occasion de répondre, je ne maitrise pas trop est je ne sais pas pourquoi le chiffre est négatif. J’ai essayé de voir le code de votre fichier, animation mais je ne suis pas arrivé à rentrer Excel n'apparait pas sur mon ordi, je suis sous seven en 64 bit est Excel 2010.
Laurent
 
Re : Problème avec un "Timer" que je ne sais pas arrêter.

Bonsoir Laurent,

Comme je l'ai dis à Pierre-Jean, j'utilise une version en 32 Bits comme la majorité d'entre nous
Le module "MASQUER_BANDE_BLEUE" est propre aux versions 32 Bits, et inutilisable en 64.

Je joins une copie sans ce dernier, l'effet en est altéré, mais tu devrais pouvoir l'ouvrir.
(Tu peux en faire de même avec mon fichier "QUESTION")

Tu substitues la copie à l'original.

Merci à toi pour ton intervention.
Et quant au caractère négatif de "TEMPS_PASSE", il est explicable,
mais ce n'et pas vraiment nécessaire de ce prendre la tête plus longtemps avec ce sujet.

Avec l'aide que j'ai reçue, tout marche bien et j'en suis fort heureux.

Amicalement, et au plaisir de te croiser à nouveau,

Yann
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour