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 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
| Sub Macro1()
Dim cel As Range 'déclare la variable cel (CELlule)
Dim Ca1 As Range 'déclare la variable Ca (Recherche
Dim Cs1 As Range 'déclare la variable Ca (Recherche
Dim Ca2 As Range 'déclare la variable Ca (Recherche
Dim Cs2 As Range 'déclare la variable Ca (Recherche
Dim i As Integer
Dim f As Integer
With Sheets("MO") 'prend en compte l'onglet "AVANT" (à adapter à ton cas)
'boucle sur toutes les cellules éditées cel de la colonne A (en partant de la ligne 2)
f = Range("K2").Value
For i = 16 To 16 + f
For Each cel In .Range("N" & i & ":AM" & i & .Cells(Application.Rows.Count, 1).End(xlUp).Row)
'définit la recherche r (recherche la valeur de la cellule en partie dans la colonne A de l'onglet "BASE")
If Range("B" & i).Value Like "P ou FP" Then
Set Ca1 = Sheets("B1").Columns(1).Find(cel.Value, , xlValues, xlPart)
Set Cs1 = Sheets("B1").Columns(1).Find(cel.Value, , xlValues, xlPart)
'si il existe au moins une occurrence trouvée, place dals la colonne I de cel la valeur de la colonne C de r
If Not Ca1 Is Nothing Then cel.Offset(0, 1).Value = Ca1.Offset(0, 1).Value
If Not Cs1 Is Nothing Then cel.Offset(0, 2).Value = Cs1.Offset(0, 2).Value
Else
If Range("B" & i).Value Like "P/FP" Then
Set Ca1 = Sheets("B2").Columns(1).Find(cel.Value, , xlValues, xlPart)
Set Cs1 = Sheets("B2").Columns(1).Find(cel.Value, , xlValues, xlPart)
'si il existe au moins une occurrence trouvée, place dals la colonne I de cel la valeur de la colonne C de r
If Not Ca1 Is Nothing Then cel.Offset(0, 1).Value = Ca1.Offset(0, 1).Value
If Not Cs1 Is Nothing Then cel.Offset(0, 2).Value = Cs1.Offset(0, 2).Value
Else
If Range("B" & i).Value Like "HP/UHX" Then
Set Ca1 = Sheets("B3").Columns(1).Find(cel.Value, , xlValues, xlPart)
Set Cs1 = Sheets("B3").Columns(1).Find(cel.Value, , xlValues, xlPart)
'si il existe au moins une occurrence trouvée, place dals la colonne I de cel la valeur de la colonne C de r
If Not Ca1 Is Nothing Then cel.Offset(0, 1).Value = Ca1.Offset(0, 1).Value
If Not Cs1 Is Nothing Then cel.Offset(0, 2).Value = Cs1.Offset(0, 2).Value
Else
If Range("B" & i).Value Like "GP ou KP" Then
Set Ca1 = Sheets("B4").Columns(1).Find(cel.Value, , xlValues, xlPart)
Set Cs1 = Sheets("B4").Columns(1).Find(cel.Value, , xlValues, xlPart)
'si il existe au moins une occurrence trouvée, place dals la colonne I de cel la valeur de la colonne C de r
If Not Ca1 Is Nothing Then cel.Offset(0, 1).Value = Ca1.Offset(0, 1).Value
If Not Cs1 Is Nothing Then cel.Offset(0, 2).Value = Cs1.Offset(0, 2).Value
Else
If Range("B" & i).Value Like "*B5*" Then
Set Ca1 = Sheets("B5").Columns(1).Find(cel.Value, , xlValues, xlPart)
Set Cs1 = Sheets("B5").Columns(1).Find(cel.Value, , xlValues, xlPart)
'si il existe au moins une occurrence trouvée, place dals la colonne I de cel la valeur de la colonne C de r
If Not Ca1 Is Nothing Then cel.Offset(0, 1).Value = Ca1.Offset(0, 1).Value
If Not Cs1 Is Nothing Then cel.Offset(0, 2).Value = Cs1.Offset(0, 2).Value
Else
If Range("B" & i).Value Like "*B6*" Then
Set Ca1 = Sheets("B6").Columns(1).Find(cel.Value, , xlValues, xlPart)
Set Cs1 = Sheets("B6").Columns(1).Find(cel.Value, , xlValues, xlPart)
'si il existe au moins une occurrence trouvée, place dals la colonne I de cel la valeur de la colonne C de r
If Not Ca1 Is Nothing Then cel.Offset(0, 1).Value = Ca1.Offset(0, 1).Value
If Not Cs1 Is Nothing Then cel.Offset(0, 2).Value = Cs1.Offset(0, 2).Value
End If
End If
End If
End If
End If
End If
Next cel 'prochaine cellule de la boucle
Next
End With 'fin de la prise en compte de l'onglet "AVANT" |
Partager