[VBA] Trouver une cellule vide et la remplir

Lila -  
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'aimerais que mon tableau sur Excel se remplisse à partir d'un Userform, mais je ne sais pas comment faire :

Dans un Userform, j'ai des textbox qui correspondent aux coordonnées (textbox1 = "Nom", textbox2 = "Prénom", etc) et un Commandbutton ("Valider").
Sur une feuille Excel, j'ai un tableau avec des colonnes correspondant aux Coordonnées (A1 = "Nom", "A2" = "Prénom", etc).

Pour l'instant, il ne remplit que la première ligne, or ce que je veux c'est qu'il cherche une cellule vide dans une colonne et remplisse mon tableau lorsque les textbox sont remplis .

Sub Valider_Cliquer()
Sheets("Feuille1").Range("A2").Select
Range("B2").Value = TextBox1.Value 'Nom
Range("C2").Value = TextBox2.Value 'Prénom
Range("D2").Value = TextBox3.Value 'Adresse
Range("E2").Value = TextBox4.Value 'Ville
Range("F2").Value = TextBox5.Value 'Numéro de téléphone
Range("G2").Value = TextBox6.Value 'Numéro de portable
End Sub

Merci beaucoup pour votre aide !

2 réponses

Zoul67 Messages postés 1959 Date d'inscription   Statut Membre Dernière intervention   149
 
Bonsoir,

1/ Tu peux donner des noms explicites à tes TextBox (ex : renommer TextBox1 en "Nom", etc.)
2/ Pour ton problème :
a) si j'ai bien compris, il faudrait que tu passes par un paramètre te donnant la ligne à remplir et donc appeler les cellules par Cells(i,2).Value=Nom.Value (et non plus la propriété Range
b) si j'ai bien compris : autant remplir les cellules du tableau plutôt qu'un UserForm ?!!

A+
0
Lila
 
Merci beaucoup pour ta réponse ! Je suis obligée d'utiliser un Userform et VBA car c'est un travail à rendre.
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
bonjour

essaies cette macro (n'oublie pas les points devant range et columns!)

Sub Valider_Cliquer()
Dim Ligvide As Integer
With Sheets("Feuille1")
     Ligvide = .Columns("A").Find("*", , , , , xlPrevious).Row + 1
     .Range("B" & Ligvide) = TextBox1.Value 'Nom
     .Range("C" & Ligvide) = TextBox2.Value 'Prénom
     'etc
End With
End Sub
0