1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| Dim FL1 As Worksheet
Dim Valeur As Variant, c As Range, Valeur2 As Variant, d As Range
Dim NoLigne As Long, DerLig As Long, NoLigne2 As Long, DerLig2 As Long
Set FL1 = Worksheets("DATA2") 'Tu travailles sur la feuille DATA2. Tu peux travailler sur 2 feuilles différentes si tu veux.
NoLigne = 1 'Variable de ligne
Do
If Not Cells(NoLigne, 4) = "" Then
Valeur = Cells(NoLigne, 4) 'Valeur recherchée en 1er : elle est en D1 puis D2, D3 etc...
Valeur2 = Cells(NoLigne, 3) 'Valeur2 recherchée en 2eme : elle est en C1 puis C2...
Do
With FL1.Range("D" & NoLigne + 1, [D65536].End(xlUp)) 'Dans la colonne D jusqu'à la dernière cellule non vide
DerLig = 0 'Initialisation dernière ligne
Set c = .Find(Valeur, LookIn:=xlValues, LookAt:=xlWhole) 'Le .Find avec Valeur
If Not c Is Nothing Then 'Si valeur trouvée
If c.Row > NoLigne Then 'Si valeur trouvée autre que valeur de départ
With FL1.Range("C" & NoLigne + 1, [C65536].End(xlUp)) 'Dans la colonne C jusqu'à la dernière cellule non vide
Set d = .Find(Valeur2, LookIn:=xlValues, LookAt:=xlWhole) 'Le .Find avec Valeur2
If Not d Is Nothing Then 'Si valeur2 trouvée
DerLig = c.Row 'Dernière ligne devient celle de la valeur (la 1ère) trouvée
c.EntireRow.Delete 'Effacement de cette ligne
End If
End With
End If
End If
Set c = Nothing 'Et on recommence !
End With
Loop While DerLig > NoLigne 'Tant que Dernière Ligne > Ligne
End If
NoLigne = NoLigne + 1 'Incrémentation
Loop While NoLigne < FL1.Range("D65536").End(xlUp).Row 'On continue jusqu'à la dernière ligne |
Partager