UserForm Dynamique - Récupérer valeur stocker dans un champ ajouter
Bonjour à tous,
Je vous expose mon problème.
J'ai créé un questionnaire via UserForm sur Excel avec pleins de petites fonctionnalités VBA.
Lorsque je clique sur un bouton "Ajouter Experts", un nouveau userform "ADDEXPERTS" m'apparait avec 3 champs m'offrant la possibilité de renseigner le nom/prénom/mail de l'expert. Je les renseigne.
Si j'appuie sur un bouton "enregistrer" (dans ce même userForm), ces informations sont reprises dans une feuille excel (database) qui stocke l'info.
J'ai aussi dans ce userform un bouton "ajouter autre expert", quand je clique dessus je créé mes 3 champs via une boucle dans le userform qui s'agrandit en fonction (au max 10 experts à ajouter et j'ai bien blindé mon code pour ca)
voici la partie du code pour ajouter mes 3 champs :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| For i = 1 To 3
Set Obj = TExperts.Controls.Add("forms.textbox.1")
With Obj
.Name = "OtherExpert" '& (CompteurDeClick + 1) 'nom de ta textbox (toto1, toto2, toto3, ...)
.Left = 160 + (100 * (CompteurDeClick)) 'position par rapport au rebord gauche de l'UserForm
.Top = 12 + PositionTop 'position par rapport au haut de l'UserForm
.Width = 78 'largeur de la zone d'écriture
.Height = 18 'hauteur de la zone d'écriture
'tu peux rajouter ou enlever des propriétés de l'objet
End With
PositionTop = PositionTop + 30
Next |
Mon problème est le suivant, je n'arrive pas à récupérer les valeurs stocker pour mon expert 2. C'est à dire que je crée 3 champs nommés "OtherExpert2" , "OtherExpert3" , "OtherExpert4" qui devrait reprendre le nom/prénom/mail de mon 2eme expert.
Mon code est le suivant quand je clique sur le bouton "enregistrer" :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
Private Sub RegisterExperts_Click()
DB = "Database"
NbLignesNonVideDB = Sheets(DB).Columns(1).Find("", LookIn:=xlFormulas, lookat:=xlWhole).Row
NbExperts = Sheets("Technique").Cells(2, 2).Value
If NbExperts = 0 Then
Sheets(DB).Cells(NbLignesNonVideDB, 20).Value = ExpertName1 & ":" & ExpertRole1 & ":" & ExpertDepartment1 & ":" & ExpertMail1 'seulement 1expert de renseigner, facile à reprendre les infos vu que je connais les noms des champs.
Else
Sheets(DB).Cells(NbLignesNonVideDB, 20).Value = ExpertName1 & ":" & ExpertRole1 & ":" & ExpertDepartment1 & ":" & ExpertMail1
j = 2
For j = 2 To NbExperts + 1
Sheets(DB).Cells(NbLignesNonVideDB, 20).Value = Sheets(DB).Cells(NbLignesNonVideDB, 20).Value & "|" & TExperts.OtherExpert1 '+ (j) & ":" & OtherExpert(j) & ":" & OtherExpert(j) & ":" & OtherExpert(j)
Next j
End If |
J'ai essayé plusieurs possibilités : OtherExpert(j), TExperts.OtherExpert1, OtherExpert & (j) rien ne marche...
Comment est-ce que je peux faire pour récupérer les petits noms techniques de mes 3 champs créés via le bouton ???