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 ! )
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
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" <pounet95@quelquepart.fr> a écrit dans le message de groupe de discussion :
AE4434F8-3517-4340-89C4-3DD7FC4697DA@microsoft.com...
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" <michdenis@hotmail.com> a écrit dans le message de groupe de
discussion : 3890A3F5-EC8C-4DF4-AA4A-49825364823D@microsoft.com...
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" <pounet95@quelquepart.fr> a écrit dans le message de groupe de
discussion :
05AD5CBC-973E-46B4-A289-36856921E44B@microsoft.com...
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" <pounet95@quelquepart.fr> a écrit dans le message de groupe de
discussion : A7A92937-090D-4839-9990-DBE2A02819A9@microsoft.com...
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 ! )
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
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 '---------------------------------------
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
'---------------------------------------
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 '---------------------------------------
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 '---------------------------------------
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" <michdenis@hotmail.com> a écrit dans le message de groupe de
discussion : 46B6DD5D-BFBD-4E63-898B-1CA8772E4E38@microsoft.com...
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
'---------------------------------------
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 '---------------------------------------