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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| Option Explicit
Sub RechercheV()
Dim wb As Workbook
Dim wsPrincipal As Worksheet, wsPatri As Worksheet
Dim Lastrow As Long, Lastrow2 As Long
Dim i As Integer, j As Integer
Dim Found As Boolean
Set wb = ThisWorkbook
Set wsPrincipal = wb.Sheets("Principal")
Set wsPatri = wb.Sheets("Patri")
Lastrow = wsPrincipal.Range("B" & Rows.Count).End(xlUp).Row 'Cherche la derniere ligne de la colonne B de la feuille Principal
Lastrow2 = wsPatri.Range("C" & Rows.Count).End(xlUp).Row 'Cherche la derniere ligne de la colonne B de la feuille Patri
For i = 2 To Lastrow2 ' Commence la loop a partire de la ligne 2 (ligne 1 titre) de la feuille Patri
Lastrow2 = wsPatri.Range("C" & Rows.Count).End(xlUp).Row 'Actualiser la derniere ligne de la colonne B de la feuille Patri
j = 2 ' Commence la loop a partire de la ligne 2 (ligne 1 titre) de la feuille Principal
Do
Found = False
'Check si colonne l'article de la feuille Patri est dans la conne B de la feuille Principal
If wsPatri.Range("C" & i) = wsPrincipal.Range("B" & j) Then
'Si oui on sort de la loop
Found = True
'Si l'article n'a pas etait trouve et que la loop a fait toute les lignes
ElseIf Found = False And Lastrow = j Then
'On copie larticle non trouve de la feuille Patri dans la feuille Principal dans la premiere cellule
'vide de la colonne B de la feuille Principal
wsPrincipal.Range("B" & Lastrow + 1) = wsPatri.Range("C" & i)
'Reinitialise la derniere ligne de la colonne B feuille Principal
Lastrow = wsPrincipal.Range("B" & Rows.Count).End(xlUp).Row
End If
'Article suivant de la feuille Principal
j = j + 1
Loop Until Found = True Or j > Lastrow 'Loop jusqu'a que l'article soit trouve ou jusqu'q la derniere ligne
'Article suivant de la feuille Patri
Next i
End Sub |
Partager