OVH Cloud OVH Cloud

Liste d'objets VBE

3 réponses
Avatar
Pounet95
Bonjour à toutes et tous,
XL2000 XP et XL2000 W2000

Je développe un outil en VBA dans lequel j'utilise des userforms avec plus
ou moins de contrôles de tous types ( listes déroulantes, listes, zones de
texte ) pour la saisie des données.
J'aurais besoin pour chaque userform de récupérer :
- le nom de chaque contrôle,
- son type ( zone de texte, liste, checkbox, etc)
- si liste la propriété RowSource, name
-si autre la propriété caption, name

Par tâtonnements j'ai réussi à avoir la liste des contrôles mais c'est tout
;o(((
Comment puis-je obtenir le reste ( voire autres propriétés telles Caption,
Length, etc )

Merci d'avance


--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)

3 réponses

Avatar
papou
Bonjour
Quelque chose comme ça "à peaufiner" :
Dim ctr As Control, z$
For Each ctr In UserForm1.Controls
z = "Type : " & ctr.Object & vbLf
If TypeOf ctr Is MSForms.ComboBox Then
z = z & "Rowsource : " & ctr.RowSource & vbLf & "Name : " & ctr.Name
Else
On Error Resume Next
z = z & "Caption : " & ctr.Caption & vbLf & "Name : " & ctr.Name
If Err <> 0 Then _
z = z & "Name : " & ctr.Name
On Error GoTo 0
End If
MsgBox z
Next ctr

Cordialement
Pascal

"Pounet95" a écrit dans le message de news:
eI$
Bonjour à toutes et tous,
XL2000 XP et XL2000 W2000

Je développe un outil en VBA dans lequel j'utilise des userforms avec plus
ou moins de contrôles de tous types ( listes déroulantes, listes, zones de
texte ) pour la saisie des données.
J'aurais besoin pour chaque userform de récupérer :
- le nom de chaque contrôle,
- son type ( zone de texte, liste, checkbox, etc)
- si liste la propriété RowSource, name
-si autre la propriété caption, name

Par tâtonnements j'ai réussi à avoir la liste des contrôles mais c'est
tout ;o(((
Comment puis-je obtenir le reste ( voire autres propriétés telles Caption,
Length, etc )

Merci d'avance


--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)



Avatar
Pounet95
Bonjour Papou et merci,

Je ne connaissais pas cette instruction If TyoeOf qui en regardant l'aide
m'a fait déboucher sur TypeName(objet)
et avoir ce que je voulais avec ce petit bout de code ( qui peut donc être
encore étendu pour obtenir d'autres propriétés )

Re merci et au plaisir

Sub zz()

Dim ctr As Control
For Each ctr In UserForm1.Controls
Select Case TypeName(ctr)
Case "ComboBox", "ListBox"
ActiveCell = ctr.Name
ActiveCell.Offset(0, 1) = ctr.RowSource
Case Else
ActiveCell = ctr.Name
End Select
ActiveCell.Offset(0, 2) = TypeName(ctr)
ActiveCell.Offset(1, 0).Select
Next ctr
End Sub


--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)

"papou" <cestpasbon@çanonplus> a écrit dans le message de news:

Bonjour
Quelque chose comme ça "à peaufiner" :
Dim ctr As Control, z$
For Each ctr In UserForm1.Controls
z = "Type : " & ctr.Object & vbLf
If TypeOf ctr Is MSForms.ComboBox Then
z = z & "Rowsource : " & ctr.RowSource & vbLf & "Name : " & ctr.Name
Else
On Error Resume Next
z = z & "Caption : " & ctr.Caption & vbLf & "Name : " & ctr.Name
If Err <> 0 Then _
z = z & "Name : " & ctr.Name
On Error GoTo 0
End If
MsgBox z
Next ctr

Cordialement
Pascal

"Pounet95" a écrit dans le message de news:
eI$
Bonjour à toutes et tous,
XL2000 XP et XL2000 W2000

Je développe un outil en VBA dans lequel j'utilise des userforms avec
plus ou moins de contrôles de tous types ( listes déroulantes, listes,
zones de texte ) pour la saisie des données.
J'aurais besoin pour chaque userform de récupérer :
- le nom de chaque contrôle,
- son type ( zone de texte, liste, checkbox, etc)
- si liste la propriété RowSource, name
-si autre la propriété caption, name

Par tâtonnements j'ai réussi à avoir la liste des contrôles mais c'est
tout ;o(((
Comment puis-je obtenir le reste ( voire autres propriétés telles
Caption, Length, etc )

Merci d'avance


--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)







Avatar
papou
Bonjour
Et bien voilà comment on avance : en découvrant par soi-même à partir d'un
début de piste ;-)
Bon courage

Cordialement
Pascal


"Pounet95" a écrit dans le message de news:

Bonjour Papou et merci,

Je ne connaissais pas cette instruction If TyoeOf qui en regardant l'aide
m'a fait déboucher sur TypeName(objet)
et avoir ce que je voulais avec ce petit bout de code ( qui peut donc être
encore étendu pour obtenir d'autres propriétés )

Re merci et au plaisir

Sub zz()

Dim ctr As Control
For Each ctr In UserForm1.Controls
Select Case TypeName(ctr)
Case "ComboBox", "ListBox"
ActiveCell = ctr.Name
ActiveCell.Offset(0, 1) = ctr.RowSource
Case Else
ActiveCell = ctr.Name
End Select
ActiveCell.Offset(0, 2) = TypeName(ctr)
ActiveCell.Offset(1, 0).Select
Next ctr
End Sub


--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)

"papou" <cestpasbon@çanonplus> a écrit dans le message de news:

Bonjour
Quelque chose comme ça "à peaufiner" :
Dim ctr As Control, z$
For Each ctr In UserForm1.Controls
z = "Type : " & ctr.Object & vbLf
If TypeOf ctr Is MSForms.ComboBox Then
z = z & "Rowsource : " & ctr.RowSource & vbLf & "Name : " & ctr.Name
Else
On Error Resume Next
z = z & "Caption : " & ctr.Caption & vbLf & "Name : " & ctr.Name
If Err <> 0 Then _
z = z & "Name : " & ctr.Name
On Error GoTo 0
End If
MsgBox z
Next ctr

Cordialement
Pascal

"Pounet95" a écrit dans le message de news:
eI$
Bonjour à toutes et tous,
XL2000 XP et XL2000 W2000

Je développe un outil en VBA dans lequel j'utilise des userforms avec
plus ou moins de contrôles de tous types ( listes déroulantes, listes,
zones de texte ) pour la saisie des données.
J'aurais besoin pour chaque userform de récupérer :
- le nom de chaque contrôle,
- son type ( zone de texte, liste, checkbox, etc)
- si liste la propriété RowSource, name
-si autre la propriété caption, name

Par tâtonnements j'ai réussi à avoir la liste des contrôles mais c'est
tout ;o(((
Comment puis-je obtenir le reste ( voire autres propriétés telles
Caption, Length, etc )

Merci d'avance


--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)