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