Bonsoir …
Pourquoi faire simple quand on peut faire compliqué ?
En tout est pour tout (en dehors du programme de lancement du formulaire qui peut se contenter d’une seule ligne de programmation)
Code du formulaire avec 22 boutons nommés C1, C2 … C22 :
Dim k As Byte, Bt(22) As New Bt
Private Sub UserForm_Activate()
For k = 1 To 22: Set Bt(k).Bt = Me("c" & k): Next
End Sub
Code du Module de classe nommé BT (gardé pour l’eemlple) :
Public WithEvents Bt As MSForms.CommandButton
Private Sub Bt_Click()
‘pour un texte ne se limitant pas à une lettre
usfSaisie.tb10 = usfSaisie.tb10 & Bt.Caption
End Sub
Nota : je ne suis pas un gourou qui veut imposer ses règles, ses façons de faire.
Heureusement tu n’utilises encore que certaines de mes propositions faites au siècle dernier et totalement nouvelles quand tu débutais, dans un autre site .
Dans ce domaine, je n’utilise plus les normes imposées en ces temps-là, beaucoup étant devenues obsolètes car mal réfléchies.