Récupérer valeur combobox dynamique [Résolu]

-
Bonjour,

pouvez-vous m'aider à solutionner mon pb en vba?

Voilà je crée dans un userform des textbox et label en dynamique, mais je n'arrive pas à récupérer les valeurs des textbox.

qd je lance le command button1, il me dit que l'objet n'existe pas.


En cherchant un peu quand même, ce serait parcequ'elles ne sont pas dans une classe. J'ai créer un module de classe mais je pense que je me trompe dans la construction.

je ne sais pas comment mettre le fichier exemple mais moyennant votre adresse mail, je vous le transmettrai!

Merci!
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
1
Merci
MsgBox Controls("TextBox1").Value

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 105 internautes nous ont dit merci ce mois-ci

Messages postés
3244
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
13 décembre 2018
0
Merci
Salut

je ne sais pas comment mettre le fichier exemple mais moyennant votre adresse mail, je vous le transmettrai!

un copier collé de la partie de ton code qui cause le problème
et c'est vb.net /vba office qu'il fallait choisir dans la combo
fais attention la prochaine fois quand tu poses ta question
0
Merci
voila le code

dans la userform


pour construire ma userform :



Option Explicit
Dim Cl As Collection

Private Sub UserForm_Initialize()
Dim endlist7, endlist6, i As Integer
Dim ctlNew As Control
Set Cl = New Collection



endlist7 = 2
While Sheets("Bout").Cells(endlist7, 1).Value <> ""
endlist7 = endlist7 + 1
Wend
endlist7 = endlist7 - 1

endlist6 = 2
While Sheets("Bout").Cells(2, endlist6).Value <> ""
endlist6 = endlist6 + 1
Wend
endlist6 = endlist6 - 1

Set ctlNew = UserForm4.Controls.Add("Forms.label.1")
ctlNew.Left = 20
ctlNew.Top = 20
ctlNew.Caption = "Numéro de" & Chr(10) & " Bouteille"
Set ctlNew = UserForm4.Controls.Add("Forms.label.1")
ctlNew.Left = 80
ctlNew.Top = 20
ctlNew.Caption = "Pesée à la date du" & Chr(10) & Sheets("Bout").Cells(2, endlist6).Value & " (en kg)"
Set ctlNew = UserForm4.Controls.Add("Forms.label.1")
ctlNew.Left = 160
ctlNew.Top = 20
ctlNew.Caption = "nouvelle pesée du (en kg)"

For i = 3 To endlist7
Set ctlNew = UserForm4.Controls.Add("Forms.label.1")
ctlNew.Left = 20
ctlNew.Top = 33 + (i - 2) * 20
ctlNew.Caption = Sheets("Bout").Cells(i, 3).Value
Set ctlNew = UserForm4.Controls.Add("Forms.label.1")
ctlNew.Left = 90
ctlNew.Top = 33 + (i - 2) * 20
ctlNew.Caption = Sheets("Bout").Cells(i, 5).Value + Sheets("Bout").Cells(i, endlist6).Value
Set ctlNew = UserForm4.Controls.Add("Forms.TextBox.1", "TextBox" & i - 2, True)
ctlNew.Left = 140
ctlNew.Top = 30 + (i - 2) * 20
Cl.Add Cl
Next i



End Sub





jusque là pas de soucis


tjrs dans la feuille, pour récupérer la valeur :


Private Sub CommandButton1_Click()


MsgBox TextBox1.Value

End Sub




ensuite dans un module de classe, j'ai créé cela, mais toute cette partie module de classe est je pense pas du tout bien écrite...



Option Explicit

Public WithEvents Cl As MSForms.TextBox



voilà voilà!
jordane45
Messages postés
23656
Date d'inscription
mercredi 22 octobre 2003
Statut
Contributeur
Dernière intervention
19 décembre 2018
-
Bonjour,
c'est bien d'avoir utilisé les balises de code pour poster votre code source sur le forum.. c'est mieux quand vous écrivez votre code DANS les balises.
Exemple:
' mon code...
Dim Mavariable
'etc..
Vu que c'est la première fois que je poste ici, je n'ai pu m'en appercevoir qu'après avoir envoyé le message.

Mais effectivement, c'est mieux.
0
Merci
précision, c'est bien quand je lance le commandbutton que le système me dit que l'objet n'existe pas...
0
Merci
Excellent, résolu! merci ucfoutu!!

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.