Pour que la macro marche correctement, elle doit utiliser la colonne H de l'onglet "Base de donnée". En fait chaque fois que tu cliques sur "Ajouter à la sélection", il incrémente le numéro - nom prénom dans cette colonne.
Autrement il faut laisser la colonne des numéros (colonne A) et c'est bon. Et ne pas modifier le nom des onglets.
Pour l'incrémentation et dans l'onglet "Lettre" et l'impression en cliquant sur le bouton "Imprimer", j'ai fait une boucle qui pour chaque ligne dabns la colonne H va chercher les données (via une fonctione Recherche) correspondant au numéro (via la fonction split) et incrémente les valeurs dans l'onglet "Lettre".
Private Sub CommandButton2_Click()
'je déclare mes variables
Dim i As Integer
Dim Nb_lignes As Integer
Dim Recherche1 As Range
Dim Numero() As String
Nb_lignes = Sheets("Base de donnée").Range("H65536").End(xlUp).Row 'permet de compter le nombre de lignes remplies sur la colonne H
For i = 2 To Nb_lignes 'boucle
Numero = Split(Sheets("Base de donnée").Range("H" & i), " ") 'scinde en plusieurs mots les valeurs de H
Set Recherche1 = Sheets("Base de donnée").Columns(1).Cells.Find(What:=Numero(0), LookAt:=xlWhole, LookIn:=xlValues) 'je recherche dans la colonne A le premier mot, donc ici un numéro
Sheets("Lettre").Range("E10") = Recherche1.Offset(0, 1) & " " & Recherche1.Offset(0, 1)
Sheets("Lettre").Range("E11") = Recherche1.Offset(0, 2)
Sheets("Lettre").Range("E12") = Recherche1.Offset(0, 3) & " " & Recherche1.Offset(0, 4) 'j'incrémente dans "Lettre"
Sheets("Lettre").Range("A1:H46").PrintOut 'j'imprime
Next i
MsgBox "Les contrats ont étés imprimés."
End Sub
je sais pas si je suis bien clair :/