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

Résolu
user1711 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
user1711 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -
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 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

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