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
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
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
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
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
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.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,
Edit: pour plus d'infos je te conseil de regarder ici la documentation de silkyroad est claire et bien documentée
Partager