Boucle 10 fois toutes les secondes puis fin
Résolu
Jimmy59116
Messages postés
45
Date d'inscription
Statut
Membre
Dernière intervention
-
Jimmy59116 Messages postés 45 Date d'inscription Statut Membre Dernière intervention -
Jimmy59116 Messages postés 45 Date d'inscription Statut Membre Dernière intervention -
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 !!!
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:
- Boucle 10 fois toutes les secondes puis fin
- Clé d'activation windows 10 - Guide
- Restauration systeme windows 10 - Guide
- Windows 10 ne démarre plus - Guide
- Windows 10 gratuit - Accueil - Mise à jour
- Winrar 64 bits windows 10 - Télécharger - Compression & Décompression
2 réponses
Bonjour
essaies
mais le sélect selection est à éviter en VBA
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