Boucle 10 fois toutes les secondes puis fin

Résolu/Fermé
Jimmy59116 Messages postés 45 Date d'inscription jeudi 27 novembre 2008 Statut Membre Dernière intervention 30 janvier 2013 - 17 janv. 2012 à 15:59
Jimmy59116 Messages postés 45 Date d'inscription jeudi 27 novembre 2008 Statut Membre Dernière intervention 30 janvier 2013 - 17 janv. 2012 à 21:46
Bonjour,

Je galère un max avec une petite appli en VBA excel

Le but du jeu est de lancer un "chronomètre" : mettre en transparent une cellule toutes les secondes pendant 10 secondes puis arrêter.

Avec la fonction application.wait il me bloque excel alors que j'ai besoin d'accéder à la feuille pendant ce temps là...

Avec Application.ontime je ne parviens pas à maîtriser la boucle.

J'ai essayé avec

for i = 1 to 10
Application.OnTime Now + TimeValue('00:00:01'), "ma macro"
Next

Mais il le fait une fois pour les 10 cellules en 1 seconde...

J'ai essayé plein d'autres méthodes, et comme d'hab, après des heures de lutte, je rends les armes et m'en remets à vous !

Code complet :

Sub chrono()
For i = 1 To 10
Application.OnTime Now + TimeValue("00:00:01"), "chrono_color"
Next
End Sub

Sub chrono_color()
' La cellule est sélectionnée dans une macro précédente
ActiveCell.Select

With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Selection.Offset(0, 1).Select
End Sub

Merci pour votre précieuse aide !!!


A voir également:

2 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
17 janv. 2012 à 19:02
Bonjour

essaies
cptr = 1
    While cptr < 11
     Start = Timer
        Do While Timer < Start + 1
            DoEvents 'rend la main au systeme
        Loop
        Range("A1") = cptr 'exemple basique on compte les secondes _
                                             insérer ici l'action
        cptr = cptr + 1
    Wend


mais le sélect selection est à éviter en VBA
0
Jimmy59116 Messages postés 45 Date d'inscription jeudi 27 novembre 2008 Statut Membre Dernière intervention 30 janvier 2013 1
17 janv. 2012 à 21:46
Un grand merci Michel !

Une fois encore, je ne comprends pas tout dans ton code, mais ça fonctionne à merveille...

Je me pencherais sur les fonctions timer pour comprendre ta boucle.

Depuis tes premières réponses, tu me dépatouilles souvent et je t'en remercie vivement.

A bientôt !

Jimmy
0