Bonjour et bienvenue sur le forum
Premier problème :
Quand dans la macro associée au bouton ‘’Valider’’ tu mets comme instruction :
Sheets("Données").Range("A21").Value = TextBoxDemandeur
La valeur de ton TextBox s’écrira toujours à la cellule A21
Si tu veux qu’elle s’écrive à la ligne suivante, il te faut chercher quel est le numéro de cette ligne suivante.
On le détermine et le met dans une mémoire ex lgn avec une instruction de ce style :
lgn = Sheets("Données").Range("A" & Rows.Count).End(xlUp).Row + 1
Mais il y a un autre problème, du fait que quand tu vas écrire la première valeur, lgn vaudra 20. Or, tu ne veux pas écrire dans une cellule fusionnée (la peste pour les macros)
Tu vas donc donner à lgn la valeur maximale entre celle donnée par l’instruction indiquée ci-dessus et la valeur 21. Ce qui donnera :
lgn = Application.Max(21,Sheets("Données").Range("A" & Rows.Count).End(xlUp).Row + 1)
Dès lors, ton instruction initiale deviendra :
Sheets("Données").Range("A" & lgn).Value = TextBoxDemandeur
OK ?
Bye !