Sub Macro1()
Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim r As Range 'déclare la variable r (Recherche)
'****************************
'efface les anciennes valeurs
'****************************
Set pl = Sheets("Resultat").Range("A1").CurrentRegion 'définit la plage pl
Set pl = pl.Resize(, pl.Columns.Count + 2) 'redéfinit la plage pl (pl + 2 colonnes)
pl.Clear 'efface la plage pl
'copy le tableau de l'onglet "Feuil1" et le colle dans l'Onglet "Resultat"
Sheets("Feuil1").Range("A1").CurrentRegion.Copy Sheets("Resultat").Range("A1")
'************************
'mise en forme du tableau
'************************
With Sheets("Resultat") 'prend en compte l'onglet "Resultat"
.Range("E1").Value = "CONTRAT" 'édite E1
.Range("F1").Value = "BILAN" 'édite F1
.Columns(5).Font.ColorIndex = 3 'couleur de police rouge dans la colonne E
.Columns(5).Font.Bold = True 'Gras dans la colonne E
.Columns(6).Font.ColorIndex = 3 'couleur de police rouge dans la colonne F
End With 'fin de la prise en compte de l'onglet "Resultat"
Set pl = pl.Offset(1, 0).Resize(pl.Rows.Count - 1, 1) 'redéfinit pl (uniquement la colonne A, à partir de A2)
For Each cel In pl 'boucle sur toutes les cellules éditées cel de la plage pl
'définit la recherche r (recherche dans la colonne H de l'onglet "Feuil2" la valeur entière de la cellule cel)
Set r = Sheets("Feuil2").Columns(8).Find(cel.Value, , xlValues, xlWhole)
If r Is Nothing Then 'condition : si aucune occurrence n'est trouvée
cel.Offset(0, 4).Value = "non activé" 'modifie la colonne E de cel
cel.Offset(0, 5).Value = "non activé" 'modifie la colonne F de cel
cel.Resize(, 6).Interior.ColorIndex = 40 'colore la ligne
Else 'sinon (si il existe une occurrence)
cel.Offset(0, 4).Value = r.Offset(0, -1) 'récupère le contrat
cel.Offset(0, 5).Value = "activé" 'modifie la colonne F de cel
End If 'fin de la condition
Next cel 'prochaine cellule cel de la boucle
End Sub