Récupération valeur de composant d'un userform

Résolu/Fermé
user1711 Messages postés 10 Date d'inscription mercredi 7 octobre 2015 Statut Membre Dernière intervention 14 octobre 2015 - 14 oct. 2015 à 13:47
user1711 Messages postés 10 Date d'inscription mercredi 7 octobre 2015 Statut Membre Dernière intervention 14 octobre 2015 - 14 oct. 2015 à 14:21
Bonjour,

J'aimerai savoir si l'un d'entre vous pourrait m'aider pour le problème suivant :

J'ai initialisé mon userform en fonction d'un paramètre pour qu'il m'affiche le nombre de label, bouton, text zone correspondant à l'aide de ce code :

Private Sub UserForm_Initialize()
'ajout des labels, button, et zone de commentaire en fonction du nombre d'objectifs
Dim MonLabel As Object, obj As Control, optB As Object
For x = 1 To Range("nb_obj").Value
Set MonLabel = Me.Controls.Add("Forms.Label.1", "Objectif " & x, True)
With MonLabel
'Move Left, Top, Width, Height
.Move 610, 30 * x, 96, 15
.Caption = MonLabel.Name
End With
Set obj = Me.Controls.Add("forms.TextBox.1")
With obj
.Name = "com_" & x
.Move 870, 30 * x, 130, 15
End With
For j = 1 To 4
Set optB = Me.Controls.Add("Forms.OptionButton.1", "btn_" & x & "_" & j, True)
With optB
.GroupName = "GroupButton" & x
'85 = largeur du label + 5 (marge) , 100 = largeur de l'optionbutton
.Move 690 + (50 * (j - 1)), 30 * x, 20, 15
End With
Next j
Next x
End Sub


Cependant maintenant j'aimerai réaliser une boucle pour que quand je clique sur le bouton valider de mon userform, elle récupère la valeur de mes boutons et texte zone pour qu'il l'affiche dans une feuille "recap". (comptage pour les boutons et récupération du commentaire pour la texte zone).

Pour faire le recap je sais le faire mais je n'ai jamais fait avec un nombre variant d'élément dans mon userform, je ne sais donc pas comment récupérer les valeurs.

J'ai essayé avec ca pour les commentaires :

Range("Q14").Select
For x = 1 To Range("nb_obj").Value
ActiveCell.Value = com_x.Value & vbCrLf
ActiveCell.Offset(1, 0).Select
Next x
Range("Q14").Select


Mais comme je m'en doutais, le "com_x".value ne marche pas ...

1 réponse

f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 1 710
14 oct. 2015 à 13:56
Bonjour,

ActiveCell.Value = Me.Controls("com_" & x).Value & vbCrLf
1
user1711 Messages postés 10 Date d'inscription mercredi 7 octobre 2015 Statut Membre Dernière intervention 14 octobre 2015
14 oct. 2015 à 14:21
Niquel ça marche parfaitement, merci !
0