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

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

  • ProbLoop.xls
    45.5 KB · Affichages: 63

jp14

XLDnaute Barbatruc
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
 

Gruick

XLDnaute Accro
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

  • Endlessloop.xls
    40.5 KB · Affichages: 92

Discussions similaires

  • Question
Microsoft 365 Code VBA
Réponses
2
Affichages
336

Statistiques des forums

Discussions
312 441
Messages
2 088 465
Membres
103 860
dernier inscrit
SebRol