VBA EXCEL : creer un boucle dont la valeur de fin evolue

Résolu
Eaheru Messages postés 205 Statut Membre -  
Eaheru Messages postés 205 Statut Membre -
Bonjour,

J'essaie de coder proprement une boucle dont la fin évolue et j'aimerais votre point de vue afin d'avoir un code "propre".

le principe est :

lasti = Range("A" & Rows.Count).End(xlUp).Row

for i=3 to lasti
if toto > 1 then
Rows(i).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
lasti = Range("A" & Rows.Count).End(xlUp).Row
end if
next i

comme écrit ci dessus j'ai tenté le recalcul dans la boucle après l'insertion d'une ligne, mais ça ne fonctionne pas.
du coup le traitement s'arrête a la valeur de fin de boucle initiale alors que j'ai inséré X lignes ...
Voila, votre aide est la bienvenue ! :)

3 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Ben oui, mais nous ne savons pas qui est toto ????
    0
    1. Eaheru Messages postés 205 Statut Membre 20
       
      :) c'est important ?
      0
  2. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Bonjour,

    Il faut incrémenter
    lasti = lasti + 1
    à chaque ajout d'une ligne dans la boucle.
    0
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Bonjour,

      lasti = Range("A" & Rows.Count).End(xlUp).Row
      est suppose faire le +1 a chaque ajout de ligne
      0
    2. Eaheru Messages postés 205 Statut Membre 20
       
      Oui, c'est la fonction de cette ligne effectivement
      0
    3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,

      il faudrait mettre votre fichier a dispo sur https://www.cjoint.com/
      0
  3. Eaheru Messages postés 205 Statut Membre 20
     
    Je reviens sur ce sujet.
    Au final j'ai inséré un texte en colonne A 2 lignes sous la dernière ligne initiale et je teste la cellule de la colonne A. Tant que je ne retrouve pas mon texte, c'est que je ne suis pas a la fin du traitement.
    0