[RESOLU] VBA - Boucler sur une colonne de façon dynamique (Avec insertion de lignes)

sokalbr

XLDnaute Nouveau
Bonjour la communauté,

J'ai réalisé une petite macro me permettant de parcourir toutes les cellules d'une colonne, et en fonction du résultat, je duplique ou non la ligne :

Code:
Dim i As Long
For i = 2 To Sheets("CPT195").Range("C65000").End(xlUp).Row
Range("I" & i) = "G"
    If Left(Range("C" & i).Value, 1) = 2 Or Left(Range("C" & i).Value, 1) = 4 Then  'Si compte 2 ou 4 on supprime analytique
        Range("J" & i) = ""
    ElseIf (Left(Range("C" & i).Value, 1) = 6 Or Left(Range("C" & i).Value, 1) = 7) And Range("J" & i) <> "" Then 'Si compte 6 ou 7 avec analytique on duplique + autres
        Range("I" & i) = "G"
        Rows(i).Select
        Selection.Copy
        Selection.Insert Shift:=xlDown
        Range("J" & i) = ""
        i = i + 1
        Range("I" & i) = "A"
    Else
        Range("J" & i) = ""
    End If
Next i

Le soucis c'est que ma macro s'arrête en plein milieu puisque le nombre de ligne a augmenté (j'ai mis beaucoup de temps à comprendre la source du problème).

Auriez-vous une idée pour boucler sur une colonne tout en prenant en compte les lignes rajoutées durant l’exécution de la macro ?

Vous en remerciant d'avance,

Valentin
 
Dernière édition:

sokalbr

XLDnaute Nouveau
Re : VBA - Boucler sur une colonne de façon dynamique (Avec insertion de lignes)

Bonjour Eric,

Effectivement cela fonctionne, merci pour l'astuce ! Par contre c'est beaucoup plus long que la méthode précédente (on dirait qu'il a du mal à insérer les lignes).
Du coup si jamais une autre idée se présente je suis preneur :)

Valentin
 

sokalbr

XLDnaute Nouveau
Re : VBA - Boucler sur une colonne de façon dynamique (Avec insertion de lignes)

Bonjour Eric, Bonjour tout le monde,

Finalement en rajoutant ce petit bout de code avant ma boucle "Application.ScreenUpdating = False" ça s’exécute très rapidement !!

Merci à toi donc je considère comme résolu :)

A bientôt,

Valentin
 

ERIC S

XLDnaute Barbatruc
Re : [RESOLU] VBA - Boucler sur une colonne de façon dynamique (Avec insertion de lig

Bonjour

j'en étais là aussi mais mon portable étant quelquefois lent, mes mesures de temps variaient énormément

remets le à true à la fin, c'est plus propre
 

Discussions similaires

Réponses
14
Affichages
645
Réponses
0
Affichages
148
Réponses
7
Affichages
346

Statistiques des forums

Discussions
312 194
Messages
2 086 071
Membres
103 110
dernier inscrit
Privé