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
| Sub Test()
Dim FeSource As Worksheet
Dim FeDest As Worksheet
Dim PlgSource As Range
Dim PlgDest As Range
Dim Cel As Range
Dim Ligne As Long
'défini les feuilles
Set FeSource = Worksheets("SOURCE")
Set FeDest = Worksheets("DESTINATION")
'défini les plages
With FeSource
Set PlgSource = .Range(.Cells(3, 1), .Cells(.Rows.Count, 1).End(xlUp))
End With
With FeDest
Set PlgDest = .Range(.Cells(3, 1), .Cells(.Rows.Count, 1).End(xlUp))
End With
'parcour la plage (en colonne A) de la feuille de destination
For Each Cel In PlgDest
'gestion de l'erreur de la valeur non trouvé
On Error Resume Next
Ligne = Application.WorksheetFunction.Match(Cel.Value, PlgSource, 0) + 2 'rajoute 2 car départ de plage en ligne 3
'si pas d'erreur, récupère les valeurs en colonnes E:G et les inscrit en colonne AN:AP
If Err.Number = 0 Then
Cel.Offset(, 39).Resize(, 3).Value = FeSource.Cells(Ligne, 1).Offset(, 4).Resize(, 3).Value
End If
Next Cel
End Sub |