Problème de boucle vba
Résolu
titidefdl13
Messages postés
12
Statut
Membre
-
titidefdl13 Messages postés 12 Statut Membre -
titidefdl13 Messages postés 12 Statut Membre -
Bonjour tout le monde
J'ai un problème , j'ai adapté un programme trouvé sur le net pour comparer 2 listes de valeur dans 2 feuilles différentes sur excel et supprimer dans la feuille 1 les valeurs pas présente dans la feuille 2 :
Le programme marche très bien mais le problème est qu'il s'arrête jamais car il ne sors pas de la boucle For
Si quelqu'un aurait la solution
Merci
J'ai un problème , j'ai adapté un programme trouvé sur le net pour comparer 2 listes de valeur dans 2 feuilles différentes sur excel et supprimer dans la feuille 1 les valeurs pas présente dans la feuille 2 :
Sub Compare() Dim i As Integer Dim col_2 As Range 'Definition plage de cellules en memoire pour vitesse execution Dim col_1 As Range Set col_1 = Worksheets("Feuil2").Range("A1:A16") Set col_2 = Worksheets("Feuil1").Range("A1:A16") With ThisWorkbook.Sheets("Feuil2") For i = 16 To 2 Step -1 'Test si valeur cellule feuil1 est dans Plage col_2(feuil2!A1:A16)) If Application.CountIf(col_2, .Range("A" & i).Value) = 0 Then Feuil1.Rows(i).Delete i = i + 1 End If Next i End With End Sub
Le programme marche très bien mais le problème est qu'il s'arrête jamais car il ne sors pas de la boucle For
Si quelqu'un aurait la solution
Merci
2 réponses
Bonjour,
Vu par un amateur (moi) : en 10, tu décrémentes i de 1 à chaque tour, en 15 tu incrémentes au moins dans certains cas le même i de 1.
Vu par un amateur (moi) : en 10, tu décrémentes i de 1 à chaque tour, en 15 tu incrémentes au moins dans certains cas le même i de 1.
Bonjour,
Rssaies :
Rssaies :
Sub Compare() Dim i As Integer Dim col_2 As Range Dim col_1 As Range Set col_1 = Worksheets("Feuil1").Range("A2:A16") Set col_2 = Worksheets("Feuil2").Range("A2:A16") For i = col_1.Row + col_1.Rows.Count - 1 To col_1.Row Step -1 If Application.CountIf(col_2, col_1.Rows(i).Value) = 0 Then col_1.Rows(i).EntireRow.Delete End If Next i End Sub
J'avais juste incrémenté le i car sinon il me supprimer qu'une seule valeur de la liste
Mais je vois que le programme de Patrice33740 marche !