Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Documentation technique ( suite )

13 réponses
Avatar
Pounet95
Bonjour à toutes et tous,
XL2007 sous Vista et Windows7

Toujours dans le cadre de mes "cogitations" pour constituer une doc
technique, je suis preneur d'une aide
sur la façon d'obtenir en VBA la liste des objets utilisés dans chacun des
userform utilisés dans l'appli
pour laquelle je veux constituer la dite doc.

Grace ( c'est le bon mot ! ) à Mgr T. Abile ( à moins que ce soit Mgr T.
Banni ), j'ai commencé à développer quelques lignes de code
me permettant de lister pour chaque module ( feuille, document, userform )
le code procédure par procédure ( ou fonction ),
d'en fabriquer quelques stats de volumétrie ainsi qu'un tableau donnant les
procédures appelées et appelantes.
Maintenant je voudrais obtenir la liste des contrôles utilisés pour les
associer éventuellement avec leur code.

Mon souci est que je n'arrive pas à avoir pour chaque contrôle son type (
listbox, label, zone de texte, etc )
Pouvez-vous m'indiquer la voie ? ( .... pas celle du Supérieur aux 2 Mgr,
elle est impénétrable parait-il ! )

Merci d'avance

Pounet95

PS : Bonne préparation au passage à 2010

3 réponses

1 2
Avatar
michdenis
Pour boucler sur tous les contrôles d'un formulaire
dans un autre classeur ouvert que le classeur où
est situé le code...

La plage "A1:A10" est présumée contenir des
noms valides de formulaire

'---------------------------------------
Sub test()
Dim C As Range
Dim Uform As UserForm
Dim Obj As Object
With WorkBooks("Autre_Classeur.xls")
For Each C In .Worksheets("Feuil1").Range("A1:A10")
Set Uform = .VBProject.VBComponents("Userform1").Designer
For Each Obj In Uform.Controls
X = TypeName(Obj)
'le reste du code
Next
Next
End With
End Sub
'---------------------------------------





"Pounet95" a écrit dans le message de groupe de discussion :

Bonsoir,

Ca ne le fait toujours pas. On verra ça l'année prochaine !
Pour le moment on va plutôt s'occuper à faire un "Excel An" 2010 en forçant
le passage avec quelques amis en partageant
quelques plaisirs de table inhérents à cette période.

Bon passage à 2010 à toutes et tous
Pounet95

"michdenis" a écrit dans le message de groupe de
discussion :
Dans la procédure,

Tu remplaces "ThisWorkbook" par
workbooks("NomDuClasseur.xls")

Sub test()
Dim C As Range
Dim Uform As UserForm
Dim Obj As Object
With ThisWorkbook
For Each C In .Worksheets("Feuil1").Range("A1:A10")
Set Uform = VBA.UserForms.Add(C.Value)
For Each Obj In Uform.Controls
X = TypeName(Obj)
'le reste du code
Next
Next
End With
End Sub




"Pounet95" a écrit dans le message de groupe de
discussion :

Bonjour,

Me revoilà : en fait ça fonctionne quand le code est dans le classeur à
scanner.
Je ne trouve pas la syntaxe pour faire en sorte que le code étant dans un
classeur A
je puisse extraire la liste des contrôles des USF qui sont dans un
classeur
B et dont la liste
est actuellement dans un classeur C ( qui pourrait très bien être le B
contenant le code d'extraction )
De plus le code étant présent dans le classeur à scanner, les USF
s'ouvrent
sans que je sache trop comment
l'en empêcher.

Je me noie dans les VBA, VBProject, Useforms, etc

Si des fois que, sous le coude tu as une piste ????,
Bonne soirée et à l'An prochain. Bon réveillon

Pounet95

"Pounet95" a écrit dans le message de groupe de
discussion :
Bonjour à toutes et tous,
XL2007 sous Vista et Windows7

Toujours dans le cadre de mes "cogitations" pour constituer une doc
technique, je suis preneur d'une aide
sur la façon d'obtenir en VBA la liste des objets utilisés dans chacun
des
userform utilisés dans l'appli
pour laquelle je veux constituer la dite doc.

Grace ( c'est le bon mot ! ) à Mgr T. Abile ( à moins que ce soit Mgr T.
Banni ), j'ai commencé à développer quelques lignes de code
me permettant de lister pour chaque module ( feuille, document,
userform )
le code procédure par procédure ( ou fonction ),
d'en fabriquer quelques stats de volumétrie ainsi qu'un tableau donnant
les procédures appelées et appelantes.
Maintenant je voudrais obtenir la liste des contrôles utilisés pour les
associer éventuellement avec leur code.

Mon souci est que je n'arrive pas à avoir pour chaque contrôle son type
( listbox, label, zone de texte, etc )
Pouvez-vous m'indiquer la voie ? ( .... pas celle du Supérieur aux 2 Mgr,
elle est impénétrable parait-il ! )

Merci d'avance

Pounet95

PS : Bonne préparation au passage à 2010





Avatar
michdenis
Pour boucler sur tous les contrôles d'un formulaire
dans un autre classeur ouvert que le classeur où
est situé le code...

La plage "A1:A10" est présumée contenir des
noms valides de formulaire

'---------------------------------------
Sub test()
Dim C As Range
Dim Uform As UserForm
Dim Obj As Object
With WorkBooks("Autre_Classeur.xls")
For Each C In .Worksheets("Feuil1").Range("A1:A10")
Set Uform = .VBProject.VBComponents(C.value).Designer
For Each Obj In Uform.Controls
X = TypeName(Obj)
'le reste du code
Next
Next
End With
End Sub
'---------------------------------------
Avatar
Pounet95
Bonjour "MichDenis",

Et bien voilà, c'est ce qui s'appelle bien commencer l'année !
C'est exactement ce que je voulais. Je n'étais pas passé loin lors de mes
essais ; il me manquait le .Designer et le message d'erreur généré lors du
passage sur la ligne
était loin de me guider vers cela ( err 13 Incompatibilité de type ou 438
dont j'ai oublié le libellé ).

Merci encore : ça va bien me servir pour faire mon "testament" avant de
prendre ma retraite dans 4 mois.
Pounet95

"michdenis" a écrit dans le message de groupe de
discussion :
Pour boucler sur tous les contrôles d'un formulaire
dans un autre classeur ouvert que le classeur où
est situé le code...

La plage "A1:A10" est présumée contenir des
noms valides de formulaire

'---------------------------------------
Sub test()
Dim C As Range
Dim Uform As UserForm
Dim Obj As Object
With WorkBooks("Autre_Classeur.xls")
For Each C In .Worksheets("Feuil1").Range("A1:A10")
Set Uform = .VBProject.VBComponents(C.value).Designer
For Each Obj In Uform.Controls
X = TypeName(Obj)
'le reste du code
Next
Next
End With
End Sub
'---------------------------------------





1 2