Données userform vers base de données excel

Fermé
lili - 3 nov. 2015 à 14:47
 lili - 3 nov. 2015 à 14:50
Bonjour,

Je débute en VBA : je tente de créer une USF multipage qui me permettra d'alimenter un tableau excel sur une feuille nommée "Base de donnée".

On m'a donné le code suivant mais je n'y comprends pas grand chose (Néanmoins, merci bcp à celui qui me l'a donné) :

Private Sub userForm_Initialize()

' Gestion des ComboBox
Dcol = Array(2, 1, 3, 4) ' Numero de Colonne
C = 1
For Col = LBound(Dcol) To UBound(Dcol)
With Controls("ComboBox" & C)
.Clear
For L = 2 To Feuil5.Cells(Rows.Count, Dcol(Col)).End(xlUp).Row
.AddItem Feuil5.Cells(L, Dcol(Col))
Next
End With
C = C + 1
Next
End Sub

Private Sub CommandButton4_Click()
With Feuil3
Nlig = .Range("A" & Rows.Count).End(xlUp).Row + 1
.Cells(Nlig, 1).Value = TextBox1.Value
.Cells(Nlig, 2).Value = ComboBox1.Value
.Cells(Nlig, 3).Value = ComboBox2.Value
.Cells(Nlig, 4).Value = ComboBox3.Value
.Cells(Nlig, 5).Value = ComboBox4.Value
.Cells(Nlig, 6).Value = TextBox2.Value
For C = 5 To 7
If Controls("CheckBox" & C).Value = True Then
.Cells(Nlig, C + 2).Value = "X"
End If
Next
End With
End Sub

Ce code fonctionne mais je ne sais pas comment le continuer puisque je ne le comprends pas.

Comme je n'y comprenais pas grand chose et que mon obejectif est d'apprendre j'ai essayé de créer mon propre code. Seulement je ne sais pas si je suis sur la bonne voie et le transfert de données dans le tableau ne fonctionne pas ! Voici mon code :

Private Sub UserForm_CommandButton1_Click()

' CommandButton1 : copie les données des textbox et conbobox sur la ligne 7 de la feuille "Basedonnées" et rajoute 1 ligne vide qui sera systématiquement la ligne n°7

With Sheets("Basedonnées")
Rows("7:7").Select
Selection.Insert Shift:=x1Down, CopyOrigin:=x1FormatfromLeftOrAbove


' 7 correspond a ma ligne vide et 1 a la Colonne A, ma derniere ligne (vide) est la 7 alors la donnée de la Textbox 1 se copiera en A7 et ainsi de suite
Sheets("Basedonnées").Cells(7, 1) = Me.TexBox1
Sheets("Basedonnées").Cells(7, 2) = Me.ComboBox1
Sheets("Basedonnées").Cells(7, 3) = Me.ComboBox2
Sheets("Basedonnées").Cells(7, 4) = Me.ComboBox3
Sheets("Basedonnées").Cells(7, 5) = Me.TextBox2
'je continuerai à lier mes textbox, ComboBox, chekBox ... aux colonnes de ma base de données. Il y aura au moins 70 colonnes à mon tableau (c'est pour cela que j'ai choisi un multipages)


'Une fois les données copiées sur la ligne 7 de la feuille "Basedonnées" une USF vierge s'ouvre automatiquement
Unload UserForm1
Load UserForm1
UserForm1.Show
End Sub

Mon objectif est qu'en cliquant sur CommandButton1 toutes les données des "objets" de l'USF soient reportées en ligne 7 de ma base de donnée, qu'une fois les données enregistrées une ligne vierge soit créée en ligne 7 et qu'une USF vierge se ré ouvre.

Aidez moi svp. Mais simplement (si possible) svp car je débute.

PS: pour les listes j'ai utilisé les ROWSOURCE.

Merci par avance pour l'aide que vous pourrez m'apporter.


A voir également:

1 réponse

"'Une fois les données copiées sur la ligne 7 de la feuille "Basedonnées" une USF vierge s'ouvre automatiquement "

'Une fois les données copiées sur la ligne 7 de la feuille "Basedonnées" et une nouvelle ligne 7 créée une USF vierge s'ouvre automatiquement
0