• Initiateur de la discussion Initiateur de la discussion faroka
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

F

faroka

Guest
Bonjour,
j 'aimerais pouvoir lister et imprimer tous les noms des textbox , listbox d'un projet .
Ceci pour faciliter la programmation et dépannage si bug.
Merci à vous
 
Re : lister textbox

j'utilise une multipage (12 pages) ) avec plusieurs textbox et une listbox a chaque page. j'aimerais donc pouvoir lister et imprimer tous ces noms afin de faciliter la suite de la programmation ainsi qu'un éventuel dépannage si un bug survient.
 
Re : lister textbox

Bonjour faroka, salut Philippe,

Apparemment il s'agit de contrôles dans un UserForm.

Donc on peut placer cette macro dans son code :

Code:
Sub ImprimerContrôlesUserForm()
Dim c As Control, t$(), n%
For Each c In Controls
  If TypeName(c) = "TextBox" Then
    ReDim Preserve t(1, n) 'base 0
    t(0, n) = c.Name
    t(1, n) = "TextBox"
    n = n + 1
  ElseIf TypeName(c) = "ListBox" Then
    ReDim Preserve t(1, n)
    t(0, n) = c.Name
    t(1, n) = "ListBox"
    n = n + 1
  End If
Next
If n Then
  Application.ScreenUpdating = False
  With Workbooks.Add.Sheets(1)
    .[A1] = "Contrôle": .[A1].Font.Bold = True
    .[B1] = "Type": .[B1].Font.Bold = True
    .[A2].Resize(n, 2) = Application.Transpose(t)
    .Columns.AutoFit 'ajustement largeur
    .[A2].Resize(n, 2).Sort .[A2], Header:=xlNo 'tri sur colonne A
    .PrintOut 'impression
    .Parent.Close False
  End With
  Application.ScreenUpdating = True
End If
End Sub
A+
 
Dernière édition:
Re : lister textbox

Re,

Avec une 3ème colonne pour le nom de la page où se trouve le contrôle :

Code:
Sub ImprimerContrôlesUserForm()
Dim c As Control, t$(), n%
For Each c In Controls
  If TypeName(c) = "TextBox" Then
    ReDim Preserve t(2, n) 'base 0
    t(0, n) = c.Name
    t(1, n) = "TextBox"
    t(2, n) = c.Parent.Name
    n = n + 1
  ElseIf TypeName(c) = "ListBox" Then
    ReDim Preserve t(2, n)
    t(0, n) = c.Name
    t(1, n) = "ListBox"
    t(2, n) = c.Parent.Name
    n = n + 1
  End If
Next
If n Then
  Application.ScreenUpdating = False
  With Workbooks.Add.Sheets(1)
    .[A1] = "Contrôle": .[A1].Font.Bold = True
    .[B1] = "Type": .[B1].Font.Bold = True
    .[C1] = "Page": .[C1].Font.Bold = True
    .[A2].Resize(n, 3) = Application.Transpose(t)
    .Columns.AutoFit 'ajustement largeur
    .[A2].Resize(n, 3).Sort .[A2], Header:=xlNo 'tri sur colonne A
    .PrintOut 'impression
    .Parent.Close False
  End With
  Application.ScreenUpdating = True
End If
End Sub
A+
 
Re : lister textbox

Re,

Juste pour un code un peu plus léger :

Code:
Sub ImprimerContrôlesUserForm()
Dim c As Control, typ$, t$(), n%
For Each c In UserForm1.Controls
  typ = TypeName(c)
  If typ = "TextBox" Or typ = "ListBox" Then
    ReDim Preserve t(2, n) 'base 0
    t(0, n) = c.Name
    t(1, n) = typ
    t(2, n) = c.Parent.Name
    n = n + 1
  End If
Next
If n Then
  Application.ScreenUpdating = False
  With Workbooks.Add.Sheets(1)
    .[A1] = "Contrôle": .[A1].Font.Bold = True
    .[B1] = "Type": .[B1].Font.Bold = True
    .[C1] = "Page": .[C1].Font.Bold = True
    .[A2].Resize(n, 3) = Application.Transpose(t)
    .Columns.AutoFit 'ajustement largeur
    .[A2].Resize(n, 3).Sort .[A2], Header:=xlNo 'tri sur colonne A
    .PrintOut 'impression
    .Parent.Close False
  End With
  Application.ScreenUpdating = True
End If
End Sub
Bonne fin de soirée et A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
1
Affichages
308
Réponses
5
Affichages
272
Retour