Creation dynamique d'un userform [Résolu]

GermPeru 166 Messages postés mercredi 7 décembre 2016Date d'inscription 5 décembre 2017 Dernière intervention - 7 févr. 2017 à 15:20 - Dernière réponse : GermPeru 166 Messages postés mercredi 7 décembre 2016Date d'inscription 5 décembre 2017 Dernière intervention
- 7 févr. 2017 à 21:25
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:
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.
Afficher la suite 

13 réponses

Répondre au sujet
cs_Le Pivert 4781 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 16 décembre 2017 Dernière intervention - 7 févr. 2017 à 17:06
0
Utile
1
Bonjour,

voilà une première approche:

https://excel.developpez.com/faq/index.php?page=Form#UsfDynamique
GermPeru 166 Messages postés mercredi 7 décembre 2016Date d'inscription 5 décembre 2017 Dernière intervention - 7 févr. 2017 à 17:26
Bonjour et merci pour le lien,

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
Commenter la réponse de cs_Le Pivert
cs_Le Pivert 4781 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 16 décembre 2017 Dernière intervention - Modifié par cs_Le Pivert le 7/02/2017 à 17:45
0
Utile
10
Il faut changer le titre car il ne reflète pas ta demande:
Creer des controles dynamiques

Voir ceci pour ta demande

http://www.commentcamarche.net/faq/31279-vba-ajouter-des-controles-dynamiquement-dans-un-userform


@+ Le Pivert
cs_Le Pivert 4781 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 16 décembre 2017 Dernière intervention > GermPeru 166 Messages postés mercredi 7 décembre 2016Date d'inscription 5 décembre 2017 Dernière intervention - 7 févr. 2017 à 20:04
Je me suis mis dans les même circonstances que toi et ça marche!

http://www.cjoint.com/c/GBhtdweIc8Q

@+
GermPeru 166 Messages postés mercredi 7 décembre 2016Date d'inscription 5 décembre 2017 Dernière intervention > cs_Le Pivert 4781 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 16 décembre 2017 Dernière intervention - 7 févr. 2017 à 20:36
Comprends pas... cést le meme code et cela ne fonctionne pas, enfin pour moi, jái un pb de classe n´etant pas definit par l´utilisateur... un détail m´echappe et je ne saisi pas le quel... 1h que je regarde point par point et tout me semble identique et pourtant quelque chose ne lái pas!!!!

J´ai essayé d' arréter de m´arracher les cheuveux, j' ai copié en tout point ton code, je l' ai collé et cela m'affiche le meme msg d' erreur; a ta connaissance est ce qu'il n'y a pas un parametre sur les module de classe a configurer pour que cela fonctionne?
cs_Le Pivert 4781 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 16 décembre 2017 Dernière intervention > GermPeru 166 Messages postés mercredi 7 décembre 2016Date d'inscription 5 décembre 2017 Dernière intervention - 7 févr. 2017 à 20:42
il faut simplement que ton module de classe soit nommé: Classe1
Tu vas dans le ruban: Insertion - Module de classe et tu verifies qu'il se nomme bien Classe1
et avoir un module standard
@+
GermPeru 166 Messages postés mercredi 7 décembre 2016Date d'inscription 5 décembre 2017 Dernière intervention - 7 févr. 2017 à 20:51
Avec tout le respect que j´ai pour toi et le temps quer tu y passes...


C'est bel et bien ce que j'ai fait mais cela ne fonctionne pas, je t'envoie mon fichier en tant que tel et si tu pouvais me dire ce que tu en penses...
GermPeru 166 Messages postés mercredi 7 décembre 2016Date d'inscription 5 décembre 2017 Dernière intervention - 7 févr. 2017 à 21:25
Je viens de m'appercevoir de l'erreur, tu avais raison sur le nom de mon module de classe, car j' ai excel en espagnol et classe s'ecrit clase, avec un seul s... J´ai juste mis 8h a mén rendre compte...

Toute une journée pour ca, je pense que cést comme ca que lón progresse lorsque lón part de peu de connaissance en programation...

J'aurais tres certainement de nouvelles questions sur la creation dynamique de control, et je l'espere qui seront plus pertinentes

Un grand merci pour le temps passé a m´aider.
Commenter la réponse de cs_Le Pivert