Private Sub CommandButton1_Click()
Dim l As Worksheet 'déclare la variable l (onglet Lettres)
Dim c As Worksheet 'déclare la variable c (onglet Chiffres)
Dim pll As Range 'déclare la variable pll (PLage Lettres)
Dim plc As Range 'déclare la variable plc (PLage Chiffres)
Dim cel As Range 'déclare la vaeriable cel (CELlule)
Dim r As Range 'déclare la variable r (Recherche)
Dim pa As String 'déclare la variable pa (Premìere Adresse)
Set l = Sheets("Lettres") 'définit l'onglet l
Set c = Sheets("Chiffres") 'définit l'onglet c
Set pll = l.Range("A3:A" & l.Range("A65536").End(xlUp).Row) 'définit la plage pll
Set plc = c.Range("B3:B" & c.Range("B65536").End(xlUp).Row) 'définit la plage plc
For Each cel In pll 'boucle sur toutes des cellules cel de la plage pll
Set r = plc.Find(cel.Value, Range("B3"), xlValues, xlWhole) 'définit la variable r
If Not r Is Nothing Then 'condition 1 : si il existe au moins une occurrence r de cel dans la plage plc
pa = r.Address 'définit la variable pa
Do 'éxécute
If cel.Offset(0, 2).Value = "" Then 'condition 2 : si l'identifiant lettre est vide
cel.Offset(0, 2).Value = r.Offset(0, -1).Value 'place l'identifiant
Else 'sinon
'place l'ancien identifiant, la virgule et le nouvel identifiant
cel.Offset(0, 2).Value = cel.Offset(0, 2).Value & "," & r.Offset(0, -1).Value
End If 'fin de la condition 2
Set r = plc.FindNext(r) 'redéfinit la variable r (prochaine occurrence)
Loop While Not r Is Nothing And r.Address <> pa 'boucle tant qu'il existe une nouvelle occurrence r de cel ailleurs qu'en pa
End If 'fin de la condition 1
Next cel 'prochaine cellule cel de la boucle
End Sub