plage mouvante en vba

denisR

XLDnaute Nouveau
Bonjour

Voilà mon probleme
j'ai une boucle FOR...NEXT
cette boucle insere des lignes dans un tableau
la condition finale se modifie donc au fur et à mesure de l'avancement du tableau mais le FOR NEXT ne se modifie pas
exemple ci dessous

For numligne = 2 To Lastli 'boucle pour toutes les lignes
Lastli = Range("a2").End(xlDown).Row 'recalcule nouvelle longueur du tableau
If Range("AB" & numligne).Value = "LAST" Then 'teste valeur cellule
Range(Rows(numligne + 1), Rows(numligne + 1)).Select 'insere une ligne
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End If
Next numligne

dans le code ci dessus comme j'insere des lignes je pensais recalculer dans ma boucle la valeur de lastli
mais ceci ne fonctionne pas

quelqu'un aurait il une idée ?

merci de votre aide

cordialement

D.ROUSSEL
 

herve62

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous
Denis , dans ta boucle lors de ta condition si elle s'avère , tu fais un "exit for" après avoir inséré ta ligne,
ensuite après le next tu recalcules ta lastli ( sous un autre nom) et tu compares à celle du début
si # tu reviens au début ( par un goto avec label) et tu assignes ton lastli à la nouvelle valeur
ex: derlig =Range("a2").End(xlDown).Row ,
if derlig <> lastli then goto deb
'retour au début
deb:
lastli= derlig
A toi d'adapter
 

denisR

XLDnaute Nouveau
Merci dranreb
cela fonctionne bien
en effet passer en revue toutes les lignes en partant de la fin permet de contourner l'augmentation du nombre de lignes
Mais comment ne pas y avoir pensé : suis je bete !
Merci encore pour votre contribution
 

Discussions similaires

Statistiques des forums

Discussions
312 088
Messages
2 085 201
Membres
102 816
dernier inscrit
bolivier