Excel VBA, boucle while... (débutant)
usky23
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'essaye de faire une boucle en VBA et étant débutant j'ai du mal.
En fait, je veux tester la valeur d'une cellule et tant qu'elle est inférieure à 17, j'incrémente de 1 la valeur d'une autre (ce qui va modifier la valeur de la première...)
mon problème c'est que soit ma boucle ne s'arrête pas, soit elle n'exécute qu'une partie des instructions...
quelqu'un aurait une idée ? je crois que c'est la condition de ma boucle qui est mauvaise...
j'essaye de faire une boucle en VBA et étant débutant j'ai du mal.
En fait, je veux tester la valeur d'une cellule et tant qu'elle est inférieure à 17, j'incrémente de 1 la valeur d'une autre (ce qui va modifier la valeur de la première...)
mon problème c'est que soit ma boucle ne s'arrête pas, soit elle n'exécute qu'une partie des instructions...
quelqu'un aurait une idée ? je crois que c'est la condition de ma boucle qui est mauvaise...
Range("I20").Select ActiveCell.Formula = "=VLOOKUP(INDEX(R1C4:R260C4,R12C15+8),R1C1:R260C3,2,0)" Dim i As Integer i = 1 Range("G23").Select While ActiveCell.FormulaR1C1 < 17 Range("H24").Select ActiveCell.FormulaR1C1 = i Range("G23").Select i = i + 1 Wend
A voir également:
- Excel VBA, boucle while... (débutant)
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
1 réponse
Bonsoir,
Effectivement qcq erreurs, mais on a tous commencé comme ça...
Evite les .select presque toujours inutiles, qui alourdissent le code et ralentissent
Evite .FormulaR1C1 pour mettre une valeur, utilise .value
Et comme la propriété par défaut pour une cellule est justement .value tu peux même t'abstenir de la mettre
Pourquoi n'utilises-tu pas directement i pour ta boucle ?
Tu utilises G23 qui n'évolue jamais (?), normale qu'elle boucle en permanence
et mis comme ça on se demande l'interet de ta boucle (??) à moins que tu n'aies pas mis tout le code.
eric
Effectivement qcq erreurs, mais on a tous commencé comme ça...
Evite les .select presque toujours inutiles, qui alourdissent le code et ralentissent
Evite .FormulaR1C1 pour mettre une valeur, utilise .value
Et comme la propriété par défaut pour une cellule est justement .value tu peux même t'abstenir de la mettre
Pourquoi n'utilises-tu pas directement i pour ta boucle ?
Tu utilises G23 qui n'évolue jamais (?), normale qu'elle boucle en permanence
i = 1 While i < 17 Range("H24")= i i = i + 1 Wend
et mis comme ça on se demande l'interet de ta boucle (??) à moins que tu n'aies pas mis tout le code.
eric