Bonjour Phoenix, Dan, Robert, le Forum
Pour ton dernier code, Phoenix, ce n'est pas le bon procédé, d'autant plus que tu appliques les [crochets] pour lesquels je ne suis pas adèpte (voir fils récents avec Yeahou).
Pour ton problème, c'est très simple tu "mixtes" les propositions de Dan et Robert comme suit, (je pars du principe que la feuille "Tableau" est un Tableau structuré et donc pas besoin du test de Robert si la ligne 1 est vide...)
Private Sub CommandButton1_Click()
Dim L As Integer 'Déclaration de variable "L" pour connaitre la Ligne Numéro
Dim WS as WorkSheet
Set WS = Sheets("Tableau") 'Déclaration de variable "WS" pour définir l'Objet Sheet
L = WS.Range("B65536").End(xlUp).Row + 1 'si tu commences bien ton tableau en colonne "B"
'NB comme je ne sais pas combien de TextBox tu as, j'imagine 3... (à adapter)
With WS
.Range("B" & L).Value = TextBox1.Value
.Range("C" & L).Value = TextBox2.Value
.Range("D" & L).Value = TextBox3.Value
'etc etc (voir plus bas mon commentaire)
.Range("X" & L).Value = Now 'ici si tu as besoin de la Date / Heure en "X"
End With
End Sub
Voilà déjà pour une première approche... (le fait de Unloaded le UserForm pour le Reloader n'est pas très catholique non plus !!!, il vaut mieux simplement vider les controls)
Un Commentaire "Plus"...
Il est évident que si tu as 22 TextBoxes dans ton UserForm (de la colonne "B" à la colonne "W" tu ne vas pas écrire 22 fois : ".Range("?" & L)" mais dans ce cas on passe en boucle, mais pour celà trois conditions sinequanon :
1) Tes TextBox sont numérotées et nommées conventionnellement (ici "TextBox")
2) Tes TextBox sont numérotées dans l'ordre des colonnes de ton Tableau
3) Ton Tableau ne contient aucune colonne vide, mais formaté en conséquence.
Une boucle comme ceci fera l'affaire :
Dim C as Byte
For C = 2 to 22 ' (= Colonnes "B" à Coloone "W")
With WS
.Cells(L, C).Value = Controls("TextBox" & C).Value
End With
En fait tout est là.... Ceci démontre bien l'importance de travailler de manière structurée et organisée dès le départ... Ensuite VBA se ballade !!!
Bon Dimanche à tous et toutes
@+Thierry