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

10 réponses

1 2
Avatar
michdenis
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 ! )

*****
For each C in userform1.Control
x = typename(c)
Msgbox C.Name & ", " & "son type : " & x
Next

La variable x va contenir ce que tu désires !
Avatar
Pounet95
Bonsoir,
Pour ma culture, 'typename', ça se trouve dans quelle rubrique de l'aide STP
?
Je ne me souviens pas avoir vu ce mot jusqu'à ce jour à moins qu'Alz..

Merci encore
Pounet95


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

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 ! )

*****
For each C in userform1.Control
x = typename(c)
Msgbox C.Name & ", " & "son type : " & x
Next

La variable x va contenir ce que tu désires !



Avatar
michdenis
TypeName appartient à la bibliothèque VBA
Comme cette bibliothèque est chargé d'office
dans Excel, on peut taire son appel lorsque l'on
utilise la Méthode.

La ligne complète serait comme ceci :

x = VBA.TypeName(c)

VBA -> bibliothèque
TypeName -> la méthode appartenant à cette biblothèque

Library VBA
Fichier responsable de cette bibliothèque :
C:Program Files (x86)Common FilesMicrosoft SharedVBAVBA6VBE6.DLL





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

Bonsoir,
Pour ma culture, 'typename', ça se trouve dans quelle rubrique de l'aide STP
?
Je ne me souviens pas avoir vu ce mot jusqu'à ce jour à moins qu'Alz..

Merci encore
Pounet95


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

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 ! )

*****
For each C in userform1.Control
x = typename(c)
Msgbox C.Name & ", " & "son type : " & x
Next

La variable x va contenir ce que tu désires !



Avatar
Pounet95
Une fois de plus merci !
Pounet95


"michdenis" a écrit dans le message de groupe de
discussion :
TypeName appartient à la bibliothèque VBA
Comme cette bibliothèque est chargé d'office
dans Excel, on peut taire son appel lorsque l'on
utilise la Méthode.

La ligne complète serait comme ceci :

x = VBA.TypeName(c)

VBA -> bibliothèque
TypeName -> la méthode appartenant à cette biblothèque

Library VBA
Fichier responsable de cette bibliothèque :
C:Program Files (x86)Common FilesMicrosoft SharedVBAVBA6VBE6.DLL





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

Bonsoir,
Pour ma culture, 'typename', ça se trouve dans quelle rubrique de l'aide
STP
?
Je ne me souviens pas avoir vu ce mot jusqu'à ce jour à moins qu'Alz..

Merci encore
Pounet95


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

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 ! )

*****
For each C in userform1.Control
x = typename(c)
Msgbox C.Name & ", " & "son type : " & x
Next

La variable x va contenir ce que tu désires !





Avatar
Pounet95
Bon, encore une pour la route !
J'ai constitué une liste avec les noms de chacune des feuilles "userform".

Je tente, pour lister les contrôles, de parcourir cette liste et pour chaque
cellule d'en prendre la valeur
afin de l'affecter à l'objet Userform

Dim Ctrl as Control
Dim Usf as Userform ' Est-ce le bon objet ????
Dim cel as Range

For Each cel in Range(MaListe)
set Usf = Userform(cel.value) ' à ce niveau erreur
Incompatibilité de type
For Each Ctrl in Usf.Controls
debug.print Typename(Ctrl), Ctrl.name
Next Ctrl
Next cel

Comment dois-je déclarer Usf pour arriver à mes fins ?
Merci d'avance
Pounet95


"michdenis" a écrit dans le message de groupe de
discussion :
TypeName appartient à la bibliothèque VBA
Comme cette bibliothèque est chargé d'office
dans Excel, on peut taire son appel lorsque l'on
utilise la Méthode.

La ligne complète serait comme ceci :

x = VBA.TypeName(c)

VBA -> bibliothèque
TypeName -> la méthode appartenant à cette biblothèque

Library VBA
Fichier responsable de cette bibliothèque :
C:Program Files (x86)Common FilesMicrosoft SharedVBAVBA6VBE6.DLL





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

Bonsoir,
Pour ma culture, 'typename', ça se trouve dans quelle rubrique de l'aide
STP
?
Je ne me souviens pas avoir vu ce mot jusqu'à ce jour à moins qu'Alz..

Merci encore
Pounet95


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

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 ! )

*****
For each C in userform1.Control
x = typename(c)
Msgbox C.Name & ", " & "son type : " & x
Next

La variable x va contenir ce que tu désires !





Avatar
michdenis
En supposant que la valeur de chaque cellule de la
plage A1:A10 représente le nom d'un formulaire
dans ton projetvba, tu peux utiliser ce type de code :

Je n'ai pas inclus une gestion d'erreur.

Tu devras adapter le nom de la feuille et la plage dans
la procédure !
'------------------------------------
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 :

Bon, encore une pour la route !
J'ai constitué une liste avec les noms de chacune des feuilles "userform".

Je tente, pour lister les contrôles, de parcourir cette liste et pour chaque
cellule d'en prendre la valeur
afin de l'affecter à l'objet Userform

Dim Ctrl as Control
Dim Usf as Userform ' Est-ce le bon objet ????
Dim cel as Range

For Each cel in Range(MaListe)
set Usf = Userform(cel.value) ' à ce niveau erreur
Incompatibilité de type
For Each Ctrl in Usf.Controls
debug.print Typename(Ctrl), Ctrl.name
Next Ctrl
Next cel

Comment dois-je déclarer Usf pour arriver à mes fins ?
Merci d'avance
Pounet95


"michdenis" a écrit dans le message de groupe de
discussion :
TypeName appartient à la bibliothèque VBA
Comme cette bibliothèque est chargé d'office
dans Excel, on peut taire son appel lorsque l'on
utilise la Méthode.

La ligne complète serait comme ceci :

x = VBA.TypeName(c)

VBA -> bibliothèque
TypeName -> la méthode appartenant à cette biblothèque

Library VBA
Fichier responsable de cette bibliothèque :
C:Program Files (x86)Common FilesMicrosoft SharedVBAVBA6VBE6.DLL





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

Bonsoir,
Pour ma culture, 'typename', ça se trouve dans quelle rubrique de l'aide
STP
?
Je ne me souviens pas avoir vu ce mot jusqu'à ce jour à moins qu'Alz..

Merci encore
Pounet95


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

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 ! )

*****
For each C in userform1.Control
x = typename(c)
Msgbox C.Name & ", " & "son type : " & x
Next

La variable x va contenir ce que tu désires !





Avatar
Pounet95
OK, Super ! C'est bien à ça que je voulais arriver.

A la lecture du code, j'avais interprété le Add comme étant une création
d'un usf supplémentaire.
Grave erreur donc.

Je te remercie vivement
Pounet95


"michdenis" a écrit dans le message de groupe de
discussion :
En supposant que la valeur de chaque cellule de la
plage A1:A10 représente le nom d'un formulaire
dans ton projetvba, tu peux utiliser ce type de code :

Je n'ai pas inclus une gestion d'erreur.

Tu devras adapter le nom de la feuille et la plage dans
la procédure !
'------------------------------------
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 :

Bon, encore une pour la route !
J'ai constitué une liste avec les noms de chacune des feuilles "userform".

Je tente, pour lister les contrôles, de parcourir cette liste et pour
chaque
cellule d'en prendre la valeur
afin de l'affecter à l'objet Userform

Dim Ctrl as Control
Dim Usf as Userform ' Est-ce le bon objet ????
Dim cel as Range

For Each cel in Range(MaListe)
set Usf = Userform(cel.value) ' à ce niveau erreur
Incompatibilité de type
For Each Ctrl in Usf.Controls
debug.print Typename(Ctrl), Ctrl.name
Next Ctrl
Next cel

Comment dois-je déclarer Usf pour arriver à mes fins ?
Merci d'avance
Pounet95


"michdenis" a écrit dans le message de groupe de
discussion :
TypeName appartient à la bibliothèque VBA
Comme cette bibliothèque est chargé d'office
dans Excel, on peut taire son appel lorsque l'on
utilise la Méthode.

La ligne complète serait comme ceci :

x = VBA.TypeName(c)

VBA -> bibliothèque
TypeName -> la méthode appartenant à cette biblothèque

Library VBA
Fichier responsable de cette bibliothèque :
C:Program Files (x86)Common FilesMicrosoft SharedVBAVBA6VBE6.DLL





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

Bonsoir,
Pour ma culture, 'typename', ça se trouve dans quelle rubrique de l'aide
STP
?
Je ne me souviens pas avoir vu ce mot jusqu'à ce jour à moins qu'Alz..

Merci encore
Pounet95


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

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 ! )

*****
For each C in userform1.Control
x = typename(c)
Msgbox C.Name & ", " & "son type : " & x
Next

La variable x va contenir ce que tu désires !







Avatar
Pounet95
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
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
Pounet95
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





1 2