Remplir un tableau Excel avec un UserForm

Fermé
Woody - 17 avril 2014 à 17:11
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 18 avril 2014 à 15:44
Bonjour à tous,

Je suis un petit nouveau dans le monde du codage et j'aimerai faire appel à vous pour mon premier UserForm dans Excel 2010.
Le but est de remplir plus facilement un tableau Excel répertoriant des clients et leurs données.
Quand je clique sur "OK" dans mon UserForm j'aimerai qu'il ajoute les informations sur la première ligne (la 7), que toutes les informations déjà dans le tableau descendent d'une ligne et que les informations saisies dans le UserForm soit effacées.

Voici pour l'instant le code que j'ai écrit, mais ça ne fonctionne pas...

Private Sub CommandButton1_Click()
With Supplier
Dim derlign As Integer
derlign = .Range("A1048576").End(xlUp).Offset(1, 0)

.Cells(derlign, 1).Value = TextBox1
.Cells(derlign, 2).Value = ComboBox1
.Cells(derlign, 3).Value = ComboBox2
.Cells(derlign, 4).Value = ComboBox3
.Cells(derlign, 5).Value = ComboBox4
.Cells(derlign, 6).Value = TextBox2
.Cells(derlign, 7).Value = ComboBox5
.Cells(derlign, 8).Value = TextBox3
.Cells(derlign, 9).Value = TextBox4
.Cells(derlign, 10).Value = TextBox5
.Cells(derlign, 11).Value = TextBox9
.Cells(derlign, 12).Value = TextBox10
.Cells(derlign, 15).Value = TextBox6
.Cells(derlign, 16).Value = TextBox7
.Cells(derlign, 17).Value = TextBox8
.Cells(derlign, 18).Value = TextBox11
.Cells(derlign, 19).Value = TextBox12

TextBox1.Value = ""
ComboBox1.Value = ""
ComboBox2.Value = ""
ComboBox3.Value = ""
ComboBox4.Value = ""
TextBox2.Value = ""
ComboBox5.Value = ""
TextBox3.Value = ""
TextBox4.Value = ""
TextBox5.Value = ""
TextBox9.Value = ""
TextBox10.Value = ""
TextBox6.Value = ""
TextBox7.Value = ""
TextBox8.Value = ""
TextBox11.Value = ""
TextBox12.Value = ""

End With
End Sub

Merci pour votre aide à tous !
A voir également:

4 réponses

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
17 avril 2014 à 17:46
Bonjour,

Il existe un enregistreur de macro. Il suffit de lancer l'enregistreur, de faire les manipulations nécessaires pour obtenir ce que l'on cherche à faire (ici, insérer une ligne vide au rang 7), d'arrêter l'enregistrement de la macro et d'aller dans l'éditeur VB pour voir le code ici généré.
0
Bonjour Polux 31,

Merci pour ton aide, l'enregistreur est en effet très utile.
J'ai suivi tes conseils malheureusement, quand je clique sur OK ça ne marche toujours pas.

Voici le code que j'ai écrit :

Private Sub CommandButton1_Click()
With Supplier

.Cells(7, 1).Value = TextBox1
.Cells(7, 2).Value = ComboBox1
.Cells(7, 3).Value = ComboBox2
.Cells(7, 4).Value = ComboBox3
.Cells(7, 5).Value = ComboBox4
.Cells(7, 6).Value = TextBox2
.Cells(7, 7).Value = ComboBox5
.Cells(7, 8).Value = TextBox3
.Cells(7, 9).Value = TextBox4
.Cells(7, 10).Value = TextBox5
.Cells(7, 11).Value = TextBox9
.Cells(7, 12).Value = TextBox10
.Cells(7, 15).Value = TextBox6
.Cells(7, 16).Value = TextBox7
.Cells(7, 17).Value = TextBox8
.Cells(7, 18).Value = TextBox11
.Cells(7, 19).Value = TextBox12

Rows("7:7").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

End With
End Sub


En tout cas merci pour ta réponse rapide !
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
18 avril 2014 à 13:21
Salut,

Tu insères une ligne après avoir reporté les infos du formulaire ?

Ensuite il manque un point devant Rows("7:7")
0
Salut,

En fait après avoir écrit mes données dans le tableau sur la ligne 7, je souhaite pouvoir continuer a ajouter d'autres données sur la ligne 7. Comme ça j'ai toujours la dernière saisie sur la ligne 7 du tableau.

Quand je clique sur OK, un message d'erreur 424 s'affiche et la première ligne de code de remplissage est surlignée en jaune.
.Cells(7, 1).Value = TextBox1
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
18 avril 2014 à 15:44
"Supplier" est le nom de la feuille. Il faut donc indiqué à VB qu'il s'agit bien d'un onglet du fichier Excel !!!

With ThisWorkbook.Worksheets("Supplier")
     .Cells(7,1).Value = TextBox1.Text
'...

End With

-1