Instanciation d'élément dans UserForm en fonction d'une variable
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 -
user1711 Messages postés 10 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je viens vers vous pour un problème qui est dans la continuité de mon projet ...
Dans la suite de mes combobox en cascade, à la fin ça me génère une liste d'objectifs. (Pour rappel, je choisis un code --> génère un libelle --> choix d'un module --> génère une liste de X objectifs).
Il faudrait que je puisse récupérer ces objectifs un à un pour les afficher dans des labels différents et ensuite instaurer un système d'évaluation.
Pour le système d'évaluation pas de soucis je sais faire.
Je bloque juste pour récupérer ma liste d'objectifs car elle n'est jamais du même nombre, et donc dans mon userform suivant je ne peux pas mettre X Label alors qu'il y en aura peut être un nombre Y et donc je me retrouverai avec des labels soit inutiles soit des labels manquant !
Ma question est donc : Comment générer un nombre de label (et autre élément) en fonction de la valeur d'une variable ?
Exemple : list_objectifs.ListCounts me retourne 6, afficher 6 labels avec 6 groupbuttons et 6 zones de commentaires dans le userform suivant !
J'ai des idées en utilisant les index, faire des boucles, tout ça reste vague, et au niveau de l'instanciation de mes éléments dans mon userform ca se complique encore plus ! Sachant qu'ensuite il faut que je récupère les données saisies pour les stocker dans une fiche synthèse.
Merci d'avance pour tout aide qui me sera apporté !
Je viens vers vous pour un problème qui est dans la continuité de mon projet ...
Dans la suite de mes combobox en cascade, à la fin ça me génère une liste d'objectifs. (Pour rappel, je choisis un code --> génère un libelle --> choix d'un module --> génère une liste de X objectifs).
Il faudrait que je puisse récupérer ces objectifs un à un pour les afficher dans des labels différents et ensuite instaurer un système d'évaluation.
Pour le système d'évaluation pas de soucis je sais faire.
Je bloque juste pour récupérer ma liste d'objectifs car elle n'est jamais du même nombre, et donc dans mon userform suivant je ne peux pas mettre X Label alors qu'il y en aura peut être un nombre Y et donc je me retrouverai avec des labels soit inutiles soit des labels manquant !
Ma question est donc : Comment générer un nombre de label (et autre élément) en fonction de la valeur d'une variable ?
Exemple : list_objectifs.ListCounts me retourne 6, afficher 6 labels avec 6 groupbuttons et 6 zones de commentaires dans le userform suivant !
J'ai des idées en utilisant les index, faire des boucles, tout ça reste vague, et au niveau de l'instanciation de mes éléments dans mon userform ca se complique encore plus ! Sachant qu'ensuite il faut que je récupère les données saisies pour les stocker dans une fiche synthèse.
Merci d'avance pour tout aide qui me sera apporté !
A voir également:
- Instanciation d'élément dans UserForm en fonction d'une variable
- Fonction si et - Guide
- Open element - Télécharger - HTML
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Vba excel sélectionner une plage de cellules variable ✓ - Forum VB / VBA
1 réponse
Bonjour,
Teste ce code dans un nouveau classeur.
Tu y dessines un UserForm et tu places ce code dans le module de l'userform :
Teste ce code dans un nouveau classeur.
Tu y dessines un UserForm et tu places ce code dans le module de l'userform :
Private Sub UserForm_Initialize() Dim i As Integer, MonLabel As Object For i = 1 To 6 '6 sera à remplacer par : List_objectifs.ListCounts Set MonLabel = Me.Controls.Add("Forms.Label.1", "MonLabel" & i, True) With MonLabel 'Move Left, Top, Width, Height .Move 5, 20 * i, 100, 20 .Caption = MonLabel.Name End With Next i End Sub
J'ai testé plusieurs possibilités avec list_objectifs.list(x), listindex, selected mais ca me met des erreurs a chaque fois.
Tu n'aurais pas une petite idée par hasard ?
Et si je veux rajouter 3 bouttons dans un groupbutton pour chaque objectifs, comment procéder ?
Fais toi un petit dessin avec les emplacements ou tu veux ajouter tes optionsButtons.
Le principe est le même, tu créées un OptionButton :
Puis tu l'incorpores dans un groupe :
Puis tu le places :
Tu n'as plus qu'à inclure ça dans une double boucle :
> celle donnée précédemment pour i de 1 à 6
> une pour y de 1 à 3 pour ajouter 3 boutons à chaque "tour" de i
Soit : (à tester)
Mais le problème de la boucle j est qu'elle décale les boutons du même groupe de 105 a chaque bouton dans ton exemple.
Hors dans mon cas les boutons sont à droite de ma userform donc si je met 690*j, j'ai qu'un seul bouton qui apparaît et les autres doivent se balader dans l'espace ...
Il n'y aurait pas un attributs à ajouter pour choisir l'intervalle entre chaque boutons plutôt que de faire un X * j ?
Essaye ce code dans un classeur neuf, avec un userform neuf.
Pour l'adapter à ton cas, fais toi un dessin...
Encore merci pour ton aide pijaku, je vais enfin pouvoir avancer dans mon projet!