Creation dynamique d'un userform
Résolu
GermPeru
Messages postés
175
Statut
Membre
-
GermPeru Messages postés 175 Statut Membre -
GermPeru Messages postés 175 Statut Membre -
Bonjour Forum,
Ma problematique actuelle est la creation d'un USF de maniere dynamique, cad que je voudrais lors de l´initialisation de mon USF qu'il charge directement des données de la premiere feuille de mon classeur dans des label.caption, le soucis est qu'il me manque certaines données pour la compréhension et donc pour la conception de mon USF. J´ai donc plein de questions:
Tout d'abord pour définir mes controles, quelle est la différence entre ces différentes expressions:
Est ce qu'il y a une forme plus "correcte" qu' une autre ou sont elles equivalente?
A ce que j'ai compris il faut créer un module de classe; contenant les événements associé a mes label; pourquoi et quel est la difference entre un module de classe et un module "classique" (sans mauvais jeux de mots).
Le code que je suis en train de developper est:
Ce qui ne fonctionne absolument pas.
Je suis prenneur de tout indice et information pouvant m´aider, un grand merci d'avance.
Ma problematique actuelle est la creation d'un USF de maniere dynamique, cad que je voudrais lors de l´initialisation de mon USF qu'il charge directement des données de la premiere feuille de mon classeur dans des label.caption, le soucis est qu'il me manque certaines données pour la compréhension et donc pour la conception de mon USF. J´ai donc plein de questions:
Tout d'abord pour définir mes controles, quelle est la différence entre ces différentes expressions:
Dim LblBox1 As MSFORMS.Label Dim LblBox2 As Control.Label Dim LblBox3 As Label
Est ce qu'il y a une forme plus "correcte" qu' une autre ou sont elles equivalente?
A ce que j'ai compris il faut créer un module de classe; contenant les événements associé a mes label; pourquoi et quel est la difference entre un module de classe et un module "classique" (sans mauvais jeux de mots).
Public WithEvents label As MSForms.label
Le code que je suis en train de developper est:
Dim i As Integer Dim Obj As Control For i = 2 To 4 'boucle pour la création des Label Set Obj = Me.Controls.Add("forms.Label.1") With Obj .Name = "TextBox" & i .Caption = Sheets(2).Range("J" & i) .Left = 12 .Top = 30 * i + 10 .Width = 50 .Height = 20 End With next i
Ce qui ne fonctionne absolument pas.
Je suis prenneur de tout indice et information pouvant m´aider, un grand merci d'avance.
A voir également:
- Creation dynamique d'un userform
- Tableau croisé dynamique - Guide
- Creation compte gmail - Guide
- Création site web - Guide
- Création d'un compte google - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
2 réponses
Bonjour,
voilà une première approche:
https://excel.developpez.com/faq/index.php?page=Form#UsfDynamique
voilà une première approche:
https://excel.developpez.com/faq/index.php?page=Form#UsfDynamique
Il faut changer le titre car il ne reflète pas ta demande:
Creer des controles dynamiques
Voir ceci pour ta demande
https://www.commentcamarche.net/faq/31279-vba-ajouter-des-controles-dynamiquement-dans-un-userform
@+ Le Pivert
Creer des controles dynamiques
Voir ceci pour ta demande
https://www.commentcamarche.net/faq/31279-vba-ajouter-des-controles-dynamiquement-dans-un-userform
@+ Le Pivert
Dans le sens dynamique, j´entends, que mes objets (lbl et txtbox) se créent et se chargent a l´initialisation de mon USF en fonction de mes données dans une des feuilles de mon classeur; selon toi ceci n´est pas dynamique?
Je suis prenneur de tout type d´information et si tu me suggére un autre titre plus adéquate et qui te parrait plus spécifique a ma demande, n´hésite pas!
Merci
Je suis prenneur de tout type d´information et si tu me suggére un autre titre plus adéquate et qui te parrait plus spécifique a ma demande, n´hésite pas!
Merci
Pour moi le titre serait:
Créer des contrôles dynamiques
Voici un exemple de création de contrôles dynamiques. L'exemple est fait avec des Checkbox, tu peux facilement remplacer par des TextBox et Label c'est la même procédure..
Tu as toute la marche à suivre, consulte la:
https://silkyroad.developpez.com/VBA/VisualBasicEditor/#LV-A
@+
Créer des contrôles dynamiques
Voici un exemple de création de contrôles dynamiques. L'exemple est fait avec des Checkbox, tu peux facilement remplacer par des TextBox et Label c'est la même procédure..
Tu as toute la marche à suivre, consulte la:
https://silkyroad.developpez.com/VBA/VisualBasicEditor/#LV-A
@+
Merci du temps que tu m'accordes,
J´ai deja essayé, mais j´ai un message d´erreur sur la ligne de cl as classe1, comme si ce n´était pas défini, d´ou ma question de départ sur le module de classe
Je souhaiterai que cela soit a línitialisation de mon USF peut etre que ce nést pas possible de cette facon? Ou alors il faut que je change le code dans mon module de classe?
Si tu en sais plus, je te remercie d´avance des informations.
PS: concernant le titre je suis d´accord avec toi mais il me semble que je ne peux pas le modifier.
J´ai deja essayé, mais j´ai un message d´erreur sur la ligne de cl as classe1, comme si ce n´était pas défini, d´ou ma question de départ sur le module de classe
Private Sub UserForm_Initialize() Dim NbLignes As Long Sheets(2).Range("A2").Select NbLignes = Range("A2", Selection.End(xlDown)).Cells.Count Dim Obj As Control Dim Cl As Classe1 Dim i As Integer Set Collect = New Collection For i = 2 To NbLignes 'boucle pour la création des Lbl Set Obj = Me.Controls.Add("forms.Label.1") With Obj .Name = "Label" & i .Object.Caption = sheets(2).Range("J" & i) .Left = 12 .Top = 24 * i + 4 .Width = 114 .Height = 18 End With 'ajout de l'objet dans la classe Set Cl = New Classe1 Set Cl.label = Obj Collect.Add Cl Next i End Sub
Je souhaiterai que cela soit a línitialisation de mon USF peut etre que ce nést pas possible de cette facon? Ou alors il faut que je change le code dans mon module de classe?
Option Explicit Public WithEvents Label As MSForms.Label
Si tu en sais plus, je te remercie d´avance des informations.
PS: concernant le titre je suis d´accord avec toi mais il me semble que je ne peux pas le modifier.
Je lávais deja consulté et il permet de créer l´USF et le code le composant au travers d´une fonction.
Pour ma part j´ai deja l'USF, je souhaiterais créer les label et textbox de maniere dynamique; pensez vous que je dois suivre une demarche similaire, cad au travers d' une fonction. Une fonction pour chaque objet de different type que je souhaite créer?
Beacoup de nouvelles notions et je ne sais pas vraiment par ou commencer
Merci de votre aide