Private Sub CommandButton1_Click() 'bouton "Assignation"
Dim o1 As Object 'déclare la variable o1 (Onglet 1)
Dim o2 As Object 'déclare la variable o2 (Onglet 2)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim r As Range 'déclare la varaible r (Recherche)
ActiveCell.Select 'enlève le focue au bouton
Set o1 = Sheets("Feuil1") 'définit l'onglet o1
Set o2 = Sheets("Feuil2") 'définit l'onglet o2
'boucle sur toutes les cellules cel de la plage B2:B... de l'onglet o1
For Each cel In o1.Range("B2:B" & o1.Cells(Application.Rows.Count, 2).End(xlUp).Row)
Set r = o2.Columns(2).Find(cel.Value, , xlValues, xlWhole) 'définit la recherche r
If Not r Is Nothing Then 'condition : si il existe au moins une occurrence trouvée
'si les colonnes E et F de la ligne de l'occurrence trouvée sont vide, récupère la valeur de la colonne C
If r.Offset(0, 3).Value = "" And r.Offset(0, 4) = "" Then cel.Offset(0, 1).Value = r.Offset(0, 1).Value
'si la colonne E n'est pas vide et la colonne F de est vide, récupère la valeur de la colonne E
If r.Offset(0, 3).Value <> "" And r.Offset(0, 4) = "" Then cel.Offset(0, 1).Value = r.Offset(0, 3).Value
'si les colonnes C, E et f ne sont pas vides, récupère la valeur de la colonne C
If r.Offset(0, 1).Value <> "" And r.Offset(0, 3).Value <> "" And r.Offset(0, 4).Value <> "" Then _
cel.Offset(0, 1).Value = r.Offset(0, 1).Value
End If 'fin de la condition
Next cel 'prochaine cellule cel de la boucle
End Sub