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 :

Lister les propriètés d'un controle


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 102
    Par défaut Lister les propriètés d'un controle
    Bonjour

    Quel est le code pour lister les propriétés d'un contrôle dans un userform.

    Merci d'avance pour vos réponses

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Je ne veux pas pourquoi tu veux un code pour faire cela ?

    Si tu veux vraiment voir tout ce qui existe, tu peux utiliser l'explorateur d'objet (F2 dans l'éditeur VBA), tu choisis par exemple textbox et tu auras tout ce qu'il te faut.

    C'est pour cela que je ne vois pas l'intérêt d'un code.

    Philippe

  3. #3
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour à tous,

    Bonjour Philippe,
    L'utilité d'un tel code n'est pas toujours evidente, j'ai déja fait ce genre de chose pour par exemple controler les accelerator, ou bien vérifier l'orthographe dans les controltyptext.

    Il est possible egalement de modifier certaines propriétés et de faire le chemin inverse (créer un nouvel usf à partir des modifications)

    bonjour jp014,
    Un exemple perso à adapter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    i = 1
    Cells(1, 1) = "Name": Cells(1, 2) = "ControlTipText": Cells(1, 3) = "Height": Cells(1, 4) = "Left": Cells(1, 5) = "TypeName(Ctrl)": Cells(1, 6) = "TabIndex": Cells(1, 7) = "TabStop": Cells(1, 8) = "Tag": Cells(1, 9) = "Top": Cells(1, 10) = "Visible": Cells(1, 11) = "Width": Cells(1, 12) = "RowSource": Cells(1, 13) = "RowSourceType": Cells(1, 14) = "BoundValue": Cells(1, 15) = "[_GetID]": Cells(1, 16) = "[_GethWnd]": Cells(1, 17) = "InSelection": Cells(1, 18) = "Parent Name": Cells(1, 19) = "Cancel": Cells(1, 20) = "ControlSource": Cells(1, 21) = "Default": Cells(1, 22) = "HelpContextID": Cells(1, 23) = "LayoutEffect": Cells(1, 24) = "Object"
    Cells(1, 25) = "Parent": Cells(1, 26) = "Accelerator": Cells(1, 27) = "Caption": Cells(1, 28) = "ForeColor": Cells(i, 29) = "BackColor"
     
    On Error Resume Next 'indispensable si la propriete n'exite pas
     
    For Each Ctrl In ThisWorkbook.VBProject.VBComponents(NomUsf).Designer.Controls
       i = i + 1
     
        With Ctrl
     
            Cells(i, 1) = .Name
            Cells(i, 2) = .ControlTipText
            Cells(i, 3) = .Height
            Cells(i, 4) = .Left
            Cells(i, 5) = TypeName(Ctrl) 'Le nom du controle !!!
            Cells(i, 6) = .TabIndex
            Cells(i, 7) = .TabStop
            Cells(i, 8) = .Tag
            Cells(i, 9) = .Top
            Cells(i, 10) = .Visible
            Cells(i, 11) = .Width
            Cells(i, 12) = .RowSource
            Cells(i, 13) = .RowSourceType
            Cells(i, 14) = .BoundValue
            Cells(i, 15) = .[_GetID]
            Cells(i, 16) = .[_GethWnd]
            Cells(i, 17) = .InSelection
            Cells(i, 18) = .Parent.Name
            Cells(i, 19) = .Cancel
            Cells(i, 20) = .ControlSource
            Cells(i, 21) = .Default
            Cells(i, 22) = .HelpContextID
            Cells(i, 23) = .LayoutEffect
            Cells(i, 24) = .Object
            Cells(i, 25) = .Parent
            Cells(i, 26) = .Accelerator
            Cells(i, 27) = .Caption
            Cells(i, 28) = .ForeColor
            Cells(i, 29) = .BackColor
        End With
    Next Ctrl

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 102
    Par défaut
    Bonjour aalex_38

    Merci pour la réponse.

    En utilisant le code on découvre des possibilités pour se simplifier la vie, par exemple lister les contrôles d'un usf, renommer des contrôles, ...

    JP014

  5. #5
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    En utilisant le code on découvre des possibilités pour se simplifier la vie, par exemple lister les contrôles d'un usf, renommer des contrôles,
    Effectivement, à l'origine j'ai fait ça pour controler dans certains userform que les raccourcis claviers n'etait pas en double et vérifier l'orthographe (par exemple des controltyptext) ensuite j'ai fait une macro qui parcours le chemin inverse, a partir des proprietes => création de l'userform et de ces controles.


    Edit: pour plus d'infos je te conseil de regarder ici la documentation de silkyroad est claire et bien documentée

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/09/2006, 09h36
  2. Lister les propriétés d'un composant
    Par bambino dans le forum Composants VCL
    Réponses: 6
    Dernier message: 22/07/2006, 12h29
  3. Réponses: 6
    Dernier message: 04/07/2006, 10h11
  4. RTTI:Lister les propriétés d'une interface COM
    Par zeprogrameur dans le forum Langage
    Réponses: 10
    Dernier message: 09/11/2005, 16h06

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