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
| Sub Recherche()
'Déclaration des variables
Dim p As Worksheet, r As Worksheet, d As Worksheet, s As Worksheet, f As Worksheet, Lig As Long, Resultat As Range, Resultat1 As Range
'Données
Set p = Worksheets("Liste Personnel") 'feuilles avec la liste du personnel ("A3:Ax")
Set r = Worksheets("Recap") 'feuilles de gestion des formations (colA: Personnel; colB: Poste; col C: Formation)
Set d = Worksheets("Data") 'feuilles d'extraction des données
Set s = Worksheets("Synthese") 'feuilles avec la liste des poste ("A3:Ax")
Set f = Worksheets("Liste formation") 'feuilles avec la liste des formations ("A3:Ax")
For Lig = 3 To p.Cells(Rows.Count, 1).End(xlUp).Row
'Reporte la liste du personnel sur Formation
r.Range("A" & Lig) = p.Range("A" & Lig)
'Recherche et copie le poste en fonction du nom
Set Resultat = s.Range("B3:B50000").Find(r.Range("A" & Lig), LookIn:=xlValues, LookAt:=xlWhole)
If Not Resultat Is Nothing Then r.Range("B" & Lig) = Resultat.Offset(0, -1)
'Recherche et copie la formation en fonction du poste
Set Resultat1 = f.Range("A3:A50000").Find(r.Range("B" & Lig), LookIn:=xlValues, LookAt:=xlWhole)
If Not Resultat1 Is Nothing Then r.Range("C" & Lig) = Resultat1.Offset(0, 2)
Next Lig
End Sub |
Partager