Problème de loop (ne s'arrête pas)

  • Initiateur de la discussion Initiateur de la discussion Grek
  • Date de début Date de début

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 !

Grek

XLDnaute Nouveau
Bonjour,

J ai un problème avec la petite macro que j ai faite (voir fichier ci-joint).
J'aimerais bien qu'elle s'arrête quand la valeur de ma dernière cellule = "END", malheureusement ca ne fonctionne pas, elle tourne en continu.
Pourriez-vous me dre ce qui ne va pas et eventuellement me conseiller une meilleure façon de procéder (j'imagine que toutes mes boucles qui se suivent ce n est pas l'ideal).

Merci d'avance pour votre aide,


Gregory

Code:
Sub UpdateChecks()
'
' UpdateChecks Macro
' Macro recorded 12/12/2006 by
'

'

    Sheets("AAA CHECKS").Select
    VarName = Range("D6").Value
    Range("B19").Select
    
    
    Sheets("FULL").Select
    Range("A3").Select
    
    'Do Until ActiveCell.Value = "END"
    
    
    Do Until ActiveCell.Value = VarName
    ActiveCell.Offset(0, 1).Activate
    Loop
    
    Do Until ActiveCell.Value = "END"
    
    
    Do Until ActiveCell.Value = "x"
    ActiveCell.Offset(1, 0).Activate
    Loop
    VarDescription = ActiveCell.Offset(0, -3).Value
    VarFrequency = ActiveCell.Offset(0, -2).Value
    VarPeriod = ActiveCell.Offset(0, -1).Value
    
    Sheets("AAA CHECKS").Select
    ActiveCell.Value = VarDescription
    ActiveCell.Offset(0, 1).Value = VarFrequency
    ActiveCell.Offset(0, 2).Value = VarPeriod
    ActiveCell.Offset(1, 0).Activate
    
    Sheets("FULL").Select
    ActiveCell.Offset(1, 0).Activate
    Loop
    
    
End Sub
 

Pièces jointes

Re : Problème de loop (ne s'arrête pas)

Bonsoir

En utilisant une expression espionne avec un arrêt si la valeur est vraie on constate qu'après avoir trouvé la valeur END le "loop" actif est dans la séquence

Do Until ActiveCell.Value = "x"
ActiveCell.Offset(1, 0).Activate
Loop ' ligne active

la cellule active se trouve alors sur la ligne qui est après END, il n'y a alors plus de possibilité d'arrêt de la boucle.
D'ou la "boucle mortelle".

JP
 
Re : Problème de loop (ne s'arrête pas)

Salut Grek,
Avec de la pratique, les do et les loop, on abandonne.
L'ennui c'est que dans ta macro, ils étaient imbriqués, et donc elle prenait le premier loop qu'elle trouvait, et elle se trompait.
(Faire tourner pas à pas, c'est plus révélateur)*(du moins sur un mac)

J'ai donc gardé l'esprit mais revu un peu ton programme, et maintenant, il s'arrête où il faut.

A plus,
Gruick
 

Pièces jointes

- 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

Discussions similaires

Réponses
1
Affichages
196
  • Question Question
Microsoft 365 Code VBA
Réponses
2
Affichages
519
Réponses
2
Affichages
476
Retour