[Userform]Horloge (chrono) pendant l'exécution d'une macro

Bonjour à tous,

Ne concerne pas le sujet mais je tenais à dire ces phrases :

Cela fait fait un peu plus d'un mois que j'ai véritablement commencé à m’intéresser à la programmation sur Excel et je suis surprise de ce qu'on peut faire avec VBA. J'ai appris énormément sur ce forum (C'est mon premier forum d'ailleurs). Parfois je tombais sur le mot "Userform" mais je ne savais pas de quoi il s'agissait réellement. Après quelques recherches, j'ai eu une petite idée là dessus mais sans plus.

C'est en voulant créer une barre de progression (avec l'aide précieuse de ce forum et le tuto de Sébastien) pour l'une de mes macros trop longue (sans doute à cause de mon manque d'expérience) , que j'ai pris conscience de ce qu'on peut faire avec un userform.

J'ai décidé de m'exercer sur un userform en créant une petite appli à mettre sur le forum (je ne sais pas si je peux me permettre de l'appeler ainsi (application) car pas très élaborée mais c'est un début ).

Venons en maintenant au sujet:

Voilà! Dans mon programme, j'aimerais faire tourner l'heure (et un chrono) et l'afficher dans un Textbox pendant l'exécution du code de l'userform (composé d'une grande boucle).

J'ai fait appel à la procédure suivante qui me sert pour le chrono dans un module (Executionn) suivi de la procédure de l'userform

Sub heure()
dim top as boolean
top = Not top 'pour que l'objet auquel est affecté la macro soit une sorte de bouton on/off

Do While top = True 
DoEvents
Range("A1").Value = Format(Now, "hh:mm:ss")
'UserForm1.TextBox1.Value = Format(Now, "hh:mm:ss")
Loop

'UserForm1.TextBox1.Value = Format(Now, "hh:mm:ss")
'Application.OnTime Now + TimeValue("00:00:01"), "heure" 'J'ai essayé de faire le chrono avec ces deux ligne mais sans succès

End Sub

Dans un module feuille j'ai:

Sub Executionn()
UserForm1.Show (0) 'non modale pour pouvoir passer à l'instruction de la ligne suivante pendant que l'userform est visible
Call heure
Call UserForm1.MaProcedure ' ma macro qui se deroule dans l'userform pendant que le chrono tourne
End Sub

Mon problème: la macro de l'heure fonctionne bien, mais le hic c'est que La macro Call UserForm1.MaProcedure ne se met en marche que quand l'heure est arrêté. Les deux ne s'exécutent pas en va dire "simultanément".

Je sais que deux instructions ne peuvent pas être exécuté au même moment mais il y a t-il une astuce pour pouvoir résoudre mon problème?

Merci d'avance pour vos solutions et surtout merci de m'avoir lue.

Cdlt

Elo7

Bonsoir,

Je doute que tu puisses les lancer en parallèle...

Bonsoir,

C'est dommage!!!!!¨

Sinon, aucune astuce?

Cdlt

Elo 7

Bonsoir,

Ci-joint un exemple pour afficher l'avancement.

Le module "modProgress" et le UF "ufProgress" peuvent être ajoutés dans n'importe quel projet (sans besoin de modification).

Après il n'y a plus qu'à appeler dans la boucle, à intervalles réguliers.

L'exemple d'utilisation est dans le UF "frmPrincipal" :

Private Sub TestTheBar()

Bonne soirée

Bouben

633attente.xlsm (27.81 Ko)
bouben a écrit :

Bonsoir,

Ci-joint un exemple pour afficher l'avancement.

Bonsoir,

Oups!!

Vous avez mal compris ma préoccupation.J'ai déjà pu faire une barre de progression.

Mais merci quand même.

Mon problème est que je ne sais pas comment faire tourner un Chrono en même temps qu'une autre macro.

Cdlt

Elo7

A cette heure... !

Regarde si tu peux et comment intégrer ton horloge dans la procédure que tu veux lancer...

A l'autre extrémité il y aurait peut-être à chercher la possibilité de lancer l'horloge dans une 2e instance d'Excel, mais là je n'ai pas du tout creusé la question...

Bonsoir,

L'objet de l'exemple était de montrer la gestion de 2 userform, avec temporisation.

Sinon, en effet, plus simple, il suffit de mettre à jour un textbox avec l'heure.

Cf PJ à tester.

Bonne soirée

Bouben

470attente-v0-4.xlsm (18.18 Ko)

bonsoir

Je ne pense pas que c est une belle façon de coder un chronomètre non ?! Mais en tous cas si quelqu’un a un commentaire il sera le bienvenu

535crono.xlsm (21.57 Ko)

Bonjour à tous,

J'ai pu trouver une solution. Merci à Bouben pour ta réponse, elle m'a été très utile.

j'ai fait appel à l'instruction qui me permet d'augmenter mon chrono d'1 secondes après chaque instruction de ma boucle et cela fonctionne bien. De cette manière le chrono n'est pas très précis mais c'est pas bien grave.

Encore merci à tous.

Cdlt

Elo7

Rechercher des sujets similaires à "userform horloge chrono execution macro"