IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[Excel] création de contrôles dynamique


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 101
    Points : 74
    Points
    74
    Par défaut [Excel] création de contrôles dynamique
    Bonsoir,

    je crée des contrôles de manières dynamique sur une UserForm.
    Dans le module de code de la UserForm en question, je déclare donc mes contrôles de la manière suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Option Explicit
    Public WithEvents bEnregConfig As CommandButton
    Public WithEvents LblDEIS As Label
    Pour les CommandButton, pas de problème.
    Pour les Label en revanche, j'ai une erreur et le compilateur me dit "L'objet n'est pas source d'évènements automation".
    J'ai regardé dans l'aide ce qu'il se disait à propos des évènements d'un Label et en principe on peut bien détecter des évènements sur un Label, d'où l'impasse dans laquelle je me trouve.
    Quelqu'un a-t-il déjà rencontré ce problème?
    Merci.

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonsoir

    ça va être difficile de te répondre sans voir la totalité de ta procédure.

    Pour moi il n'y a pas de soucis avec les Labels.


    michel

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Quelle version as-tu ?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 101
    Points : 74
    Points
    74
    Par défaut
    La procédure est plutôt longue donc je mets en pièce jointe le fichier Excel "Labels 2.xls" dans lequel il n'y a pas de problème.

    Normalement toutes les références du projet sont à jour. Toutefois, si ça ne fonctionne pas, il faut ajouter la référence "Microsoft Visual Basic For Application Extensibility 5.3".

    Ensuite il faut lancer la macro "Chargement".

    Elle crée les contrôles de la UserForm "Accueil".

    Dans "Labels 2.xls" tout marche bien.

    Dans "Labels 3.xls" (aussi en PJ), j'ai juste changé la ligne 7 du module de code de la UserForm "Accueil" pour pouvoir prendre en compte l'évènement Clic sur le label intitulé "LblTemp" dont le contenu est "TEMPERATURE" en haut de la UserForm en vert.

    C'est là que ça coince.

    J'espère avoir été suffisamment clair.

    Bonsoir Ouskel'n'or.
    J'ai la version 2003 d'Excel.
    Fichiers attachés Fichiers attachés

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 101
    Points : 74
    Points
    74
    Par défaut
    Bon en attendant, j'ai essayé ça, dans le module de code d'une userform:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim lbl As Control
    Public lbl2 As Label
    Public bouton As CommandButton
    Private Sub UserForm_initialize()
        Set lbl = UserForm1.Controls.Add("Forms.Label.1")
        Set bouton = UserForm1.Controls.Add("Forms.CommandButton.1")
        Set lbl2 = UserForm1.Controls.Add("Forms.Label.1")
    End Sub
    le compilateur rencontre une erreur quand il arrive à Set lbl2 =... . Il me sort une incompatibilité de type.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 101
    Points : 74
    Points
    74
    Par défaut
    Et en rajoutant les withEvents j'obtiens l'erreur précédente:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim lbl As Control
    Public WithEvents lbl2 As Label
    Public WithEvents bouton As CommandButton
    Private Sub UserForm_initialize()
        Set lbl = UserForm1.Controls.Add("Forms.Label.1")
        Set bouton = UserForm1.Controls.Add("Forms.CommandButton.1")
        Set lbl2 = UserForm1.Controls.Add("Forms.Label.1")
    End Sub
    Il semblerait bien qu'un erreur en cache une autre.

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonsoir

    Je n'ai pas compris le fonctionnement de ton classeur, mais tu peux essayer:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public WithEvents LblTemp As MSForms.Label


    michel

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 101
    Points : 74
    Points
    74
    Par défaut
    MERCI, ca marche nickel!!!

    Bon une question quand même: comment savais-tu qu'il fallait rajouter le MsForms. devant le label alors que tout marchait bien avec les commandButton?

    Encore merci, j'aurais jamais trouvé tout seul.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 30/03/2016, 21h28
  2. Création de contrôles dynamiques dans une frame
    Par Cidou dans le forum VBA Project
    Réponses: 0
    Dernier message: 14/05/2008, 10h14
  3. [VBA-E]Création de contrôle dynamique, propriété illisible
    Par spileo dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 13/03/2007, 23h45
  4. [VB.NET] - Création de contrôle dynamique
    Par DeFCrew dans le forum Windows Forms
    Réponses: 6
    Dernier message: 08/09/2006, 16h18
  5. [VBA Excel] Créer plusieurs contrôles dynamiquement
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 08/12/2005, 17h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo