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   -
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...



    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:

1 réponse

eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
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
   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
1