Pas trouvé de solution?

Le
Charly
Bonjour à tous,

Je cherche un moyen de créer une procédure pour boucler sur tous les Control
TextBox de tous les UserForm de mon classeur actif.

J'ai bien trouvé une procédure pour boucler sur tous les formulaires

Dim frm As vbcomponent
For Each frm In ThisWorkbook.VBProject.VBComponents
If frm.Type = 3 Then

End If
Next frm

mais je coince pour boucler ensuite sur les contrôles TextBox des
formulaires trouvés.

Merci pour votre aide
Charles
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
LSteph
Le #4530611
Bonjour,

peut-être (non testé, m'en vais) dans le genre , à imbriquer:

dim i as integer
'....
with frm
for i = 1 to .controls.count
if .controls(i).typeOf = msforms.textbox then
'...
next i
end with
'...


Cordialement.

LSteph


Bonjour à tous,

Je cherche un moyen de créer une procédure pour boucler sur tous les Control
TextBox de tous les UserForm de mon classeur actif.

J'ai bien trouvé une procédure pour boucler sur tous les formulaires

Dim frm As vbcomponent
For Each frm In ThisWorkbook.VBProject.VBComponents
If frm.Type = 3 Then

End If
Next frm

mais je coince pour boucler ensuite sur les contrôles TextBox des
formulaires trouvés.

Merci pour votre aide
Charles




Misange
Le #4530591
bonjour,
http://www.excelabo.net/excel/controlestypes.php#bouclecontrole
souvenirs souvenirs, c'était ma première question sur ce forum ;-)

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjour à tous,

Je cherche un moyen de créer une procédure pour boucler sur tous les Control
TextBox de tous les UserForm de mon classeur actif.

J'ai bien trouvé une procédure pour boucler sur tous les formulaires

Dim frm As vbcomponent
For Each frm In ThisWorkbook.VBProject.VBComponents
If frm.Type = 3 Then

End If
Next frm

mais je coince pour boucler ensuite sur les contrôles TextBox des
formulaires trouvés.

Merci pour votre aide
Charles




Charly
Le #4530411
merci pour votre aide,

mais les deux solutions ne conviennent pas!
celle de LSteph ne fonctionne pas (merci tout de même),
celle de Misange pourrait fonctionner si je pouvais renseigner le formulaire
traité -
dans le style :

Sub ListeLables()
Dim Frm As VBComponent
Dim Ctrl As Control
Dim i As Integer

i = 1
For Each Frm In ThisWorkbook.VBProject.VBComponents
If Frm.Type = vbext_ct_MSForm Then
For Each Ctrl In Frm.Controls ' <<<<<
mon problème !
If TypeOf Ctrl Is MSForms.Label Then
Cells(i, 1).Value = Frm.Name
Cells(i, 2).Value = Ctrl.Name
Cells(i, 3).Value = Ctrl.Caption
i = i + 1
End If
Next
End If
Next
End Sub

mon problème est de faire fonctionner la boucle for each Ctrl ...

Merci quand même
Charles

"Charly"
Bonjour à tous,

Je cherche un moyen de créer une procédure pour boucler sur tous les
Control TextBox de tous les UserForm de mon classeur actif.

J'ai bien trouvé une procédure pour boucler sur tous les formulaires

Dim frm As vbcomponent
For Each frm In ThisWorkbook.VBProject.VBComponents
If frm.Type = 3 Then

End If
Next frm

mais je coince pour boucler ensuite sur les contrôles TextBox des
formulaires trouvés.

Merci pour votre aide
Charles



anonymousA
Le #4530301
Bonjour

For Each Ctrl In Frm.Designer.Controls

A+


merci pour votre aide,

mais les deux solutions ne conviennent pas!
celle de LSteph ne fonctionne pas (merci tout de même),
celle de Misange pourrait fonctionner si je pouvais renseigner le formulaire
traité -
dans le style :

Sub ListeLables()
Dim Frm As VBComponent
Dim Ctrl As Control
Dim i As Integer

i = 1
For Each Frm In ThisWorkbook.VBProject.VBComponents
If Frm.Type = vbext_ct_MSForm Then
For Each Ctrl In Frm.Controls ' <<<<<
mon problème !
If TypeOf Ctrl Is MSForms.Label Then
Cells(i, 1).Value = Frm.Name
Cells(i, 2).Value = Ctrl.Name
Cells(i, 3).Value = Ctrl.Caption
i = i + 1
End If
Next
End If
Next
End Sub

mon problème est de faire fonctionner la boucle for each Ctrl ...

Merci quand même
Charles

"Charly"
Bonjour à tous,

Je cherche un moyen de créer une procédure pour boucler sur tous les
Control TextBox de tous les UserForm de mon classeur actif.

J'ai bien trouvé une procédure pour boucler sur tous les formulaires

Dim frm As vbcomponent
For Each frm In ThisWorkbook.VBProject.VBComponents
If frm.Type = 3 Then

End If
Next frm

mais je coince pour boucler ensuite sur les contrôles TextBox des
formulaires trouvés.

Merci pour votre aide
Charles







Charly
Le #4530221
MERCI !!


"anonymousA" 4652cd9e$0$25917$
Bonjour

For Each Ctrl In Frm.Designer.Controls

A+


merci pour votre aide,

mais les deux solutions ne conviennent pas!
celle de LSteph ne fonctionne pas (merci tout de même),
celle de Misange pourrait fonctionner si je pouvais renseigner le
formulaire traité -
dans le style :

Sub ListeLables()
Dim Frm As VBComponent
Dim Ctrl As Control
Dim i As Integer

i = 1
For Each Frm In ThisWorkbook.VBProject.VBComponents
If Frm.Type = vbext_ct_MSForm Then
For Each Ctrl In Frm.Controls '
<<<<< mon problème !
If TypeOf Ctrl Is MSForms.Label Then
Cells(i, 1).Value = Frm.Name
Cells(i, 2).Value = Ctrl.Name
Cells(i, 3).Value = Ctrl.Caption
i = i + 1
End If
Next
End If
Next
End Sub

mon problème est de faire fonctionner la boucle for each Ctrl ...

Merci quand même
Charles

"Charly"
Bonjour à tous,

Je cherche un moyen de créer une procédure pour boucler sur tous les
Control TextBox de tous les UserForm de mon classeur actif.

J'ai bien trouvé une procédure pour boucler sur tous les formulaires

Dim frm As vbcomponent
For Each frm In ThisWorkbook.VBProject.VBComponents
If frm.Type = 3 Then

End If
Next frm

mais je coince pour boucler ensuite sur les contrôles TextBox des
formulaires trouvés.

Merci pour votre aide
Charles








MichDenis
Le #4530181
2 alternatives :

Boucler sur tous les controles "Textbox" en mode création

'-----------------------------------
Sub test()
Dim Vbcomp As Object
Dim frm As UserForm
For Each Vbcomp In ThisWorkbook.VBProject.VBComponents
If Vbcomp.Type = 3 Then
Set frm = Vbcomp.Designer
For Each c In frm.Controls
If TypeName(c) = "TextBox" Then
'ton code pour tes textbox
MsgBox c.Name & " du formulaire : " & Vbcomp.Name
End If
Next
End If
Next
End Sub
'-----------------------------------

Boucler sur tous les controles "Textbox" seulement des formulaires
CHARGER en mémoire vive qu'ils soient visibles ou non à l'écran

'------------------
Sub UserformCharger()
On Error Resume Next
For Each u In UserForms
Set Mavar = u
If Err = 0 Then
For Each c In u.Controls
MsgBox c.Name & " du formulaire : " & u.Name
Next
End If
Next
End Sub
'------------------



"Charly"
Bonjour à tous,

Je cherche un moyen de créer une procédure pour boucler sur tous les Control
TextBox de tous les UserForm de mon classeur actif.

J'ai bien trouvé une procédure pour boucler sur tous les formulaires

Dim frm As vbcomponent
For Each frm In ThisWorkbook.VBProject.VBComponents
If frm.Type = 3 Then

End If
Next frm

mais je coince pour boucler ensuite sur les contrôles TextBox des
formulaires trouvés.

Merci pour votre aide
Charles
lSteph
Le #4530041
Re Bonjour,
..pressé ce matin,
mais si cela peut marcher mais plus compliqué à adapter que je
pensais

http://cjoint.com/?fwpFHMcayG

LSteph

le Code:

Option Explicit
Sub listTbox()
Dim i As Integer, j As Integer, mycheckup As String
With ThisWorkbook.VBProject
For i = 1 To .VBComponents.Count
If .VBComponents(i).Type = 3 Then

For j = 0 To .VBComponents(i).Designer.Controls.Count - 1
If Left(.VBComponents(i).Designer.Controls(j).Name, 5) = "TextB"
Then
mycheckup = mycheckup & .VBComponents(i).Name & " - " & _
.VBComponents(i).Designer.Controls(j).Name & vbCrLf
End If
Next j

End If
Next i
End With
MsgBox mycheckup
End Sub

'....
On 22 mai, 11:51, "Charly"
merci pour votre aide,

mais les deux solutions ne conviennent pas!
celle de LSteph ne fonctionne pas (merci tout de même),


lSteph
Le #4529801
...mais si, cela peut marcher, sauf que ce matin j'étais pressé et
c'est un peu moins simple à adapter que je ne pensais (déjà faut
cocher réf à vbextensibility mais cela je suppose que c'est déjà
fait )

Exemple: http://cjoint.com/?fwpFHMcayG

Cdlt

lSteph
le code:

Option Explicit
Sub listtbox()
Dim i As Integer, j As Integer, mycheckup As String
With ThisWorkbook.VBProject
For i = 1 To .VBComponents.Count
If .VBComponents(i).Type = 3 Then
'....
For j = 0 To .VBComponents(i).Designer.Controls.Count - 1
If Left(.VBComponents(i).Designer.Controls(j).Name, 5) = "TextB"
Then
mycheckup = mycheckup & .VBComponents(i).Name & " - " & _
.VBComponents(i).Designer.Controls(j).Name & vbCrLf
End If
Next j

End If
Next i
End With
MsgBox mycheckup
End Sub



On 22 mai, 11:51, "Charly"
merci pour votre aide,

mais les deux solutions ne conviennent pas!
celle de LSteph ne fonctionne pas (merci tout de même),
celle de Misange pourrait fonctionner si je pouvais renseigner le formula ire
traité -
dans le style :

Sub ListeLables()
Dim Frm As VBComponent
Dim Ctrl As Control
Dim i As Integer

i = 1
For Each Frm In ThisWorkbook.VBProject.VBComponents
If Frm.Type = vbext_ct_MSForm Then
For Each Ctrl In Frm.Controls ' << <<<
mon problème !
If TypeOf Ctrl Is MSForms.Label Then
Cells(i, 1).Value = Frm.Name
Cells(i, 2).Value = Ctrl.Name
Cells(i, 3).Value = Ctrl.Caption
i = i + 1
End If
Next
End If
Next
End Sub

mon problème est de faire fonctionner la boucle for each Ctrl ...

Merci quand même
Charles

"Charly"

Bonjour à tous,

Je cherche un moyen de créer une procédure pour boucler sur tous les
Control TextBox de tous les UserForm de mon classeur actif.

J'ai bien trouvé une procédure pour boucler sur tous les formulaires

Dim frm As vbcomponent
For Each frm In ThisWorkbook.VBProject.VBComponents
If frm.Type = 3 Then

End If
Next frm

mais je coince pour boucler ensuite sur les contrôles TextBox des
formulaires trouvés.

Merci pour votre aide
Charles




lSteph
Le #4529791
...mais si, cela peut marcher, sauf que ce matin j'étais pressé et
c'est un peu moins simple à adapter que je ne pensais (déjà faut
cocher réf à vbextensibility mais cela je suppose que c'est déjà
fait )

Exemple: http://cjoint.com/?fwpFHMcayG

Cdlt

lSteph
le code:

Option Explicit
Sub listtbox()
Dim i As Integer, j As Integer, mycheckup As String
With ThisWorkbook.VBProject
For i = 1 To .VBComponents.Count
If .VBComponents(i).Type = 3 Then
'....
For j = 0 To .VBComponents(i).Designer.Controls.Count - 1
If Left(.VBComponents(i).Designer.Controls(j).Name, 5) = "TextB"
Then
mycheckup = mycheckup & .VBComponents(i).Name & " - " & _
.VBComponents(i).Designer.Controls(j).Name & vbCrLf
End If
Next j

End If
Next i
End With
MsgBox mycheckup
End Sub



On 22 mai, 11:51, "Charly"
merci pour votre aide,

mais les deux solutions ne conviennent pas!
celle de LSteph ne fonctionne pas (merci tout de même),
celle de Misange pourrait fonctionner si je pouvais renseigner le formula ire
traité -
dans le style :

Sub ListeLables()
Dim Frm As VBComponent
Dim Ctrl As Control
Dim i As Integer

i = 1
For Each Frm In ThisWorkbook.VBProject.VBComponents
If Frm.Type = vbext_ct_MSForm Then
For Each Ctrl In Frm.Controls ' << <<<
mon problème !
If TypeOf Ctrl Is MSForms.Label Then
Cells(i, 1).Value = Frm.Name
Cells(i, 2).Value = Ctrl.Name
Cells(i, 3).Value = Ctrl.Caption
i = i + 1
End If
Next
End If
Next
End Sub

mon problème est de faire fonctionner la boucle for each Ctrl ...

Merci quand même
Charles

"Charly"

Bonjour à tous,

Je cherche un moyen de créer une procédure pour boucler sur tous les
Control TextBox de tous les UserForm de mon classeur actif.

J'ai bien trouvé une procédure pour boucler sur tous les formulaires

Dim frm As vbcomponent
For Each frm In ThisWorkbook.VBProject.VBComponents
If frm.Type = 3 Then

End If
Next frm

mais je coince pour boucler ensuite sur les contrôles TextBox des
formulaires trouvés.

Merci pour votre aide
Charles




lSteph
Le #4529601
...mais si, cela peut marcher, sauf que ce matin j'étais pressé et
c'est un peu moins simple à adapter que je ne pensais (déjà faut
cocher réf à vbextensibility mais cela je suppose que c'est déjà
fait )

Exemple: http://cjoint.com/?fwpFHMcayG

Cdlt

lSteph
le code:

Option Explicit
Sub listtbox()
Dim i As Integer, j As Integer, mycheckup As String
With ThisWorkbook.VBProject
For i = 1 To .VBComponents.Count
If .VBComponents(i).Type = 3 Then
'....
For j = 0 To .VBComponents(i).Designer.Controls.Count - 1
If Left(.VBComponents(i).Designer.Controls(j).Name, 5) = "TextB"
Then
mycheckup = mycheckup & .VBComponents(i).Name & " - " & _
.VBComponents(i).Designer.Controls(j).Name & vbCrLf
End If
Next j

End If
Next i
End With
MsgBox mycheckup
End Sub



On 22 mai, 11:51, "Charly"
merci pour votre aide,

mais les deux solutions ne conviennent pas!
celle de LSteph ne fonctionne pas (merci tout de même),
celle de Misange pourrait fonctionner si je pouvais renseigner le formula ire
traité -
dans le style :

Sub ListeLables()
Dim Frm As VBComponent
Dim Ctrl As Control
Dim i As Integer

i = 1
For Each Frm In ThisWorkbook.VBProject.VBComponents
If Frm.Type = vbext_ct_MSForm Then
For Each Ctrl In Frm.Controls ' << <<<
mon problème !
If TypeOf Ctrl Is MSForms.Label Then
Cells(i, 1).Value = Frm.Name
Cells(i, 2).Value = Ctrl.Name
Cells(i, 3).Value = Ctrl.Caption
i = i + 1
End If
Next
End If
Next
End Sub

mon problème est de faire fonctionner la boucle for each Ctrl ...

Merci quand même
Charles

"Charly"

Bonjour à tous,

Je cherche un moyen de créer une procédure pour boucler sur tous les
Control TextBox de tous les UserForm de mon classeur actif.

J'ai bien trouvé une procédure pour boucler sur tous les formulaires

Dim frm As vbcomponent
For Each frm In ThisWorkbook.VBProject.VBComponents
If frm.Type = 3 Then

End If
Next frm

mais je coince pour boucler ensuite sur les contrôles TextBox des
formulaires trouvés.

Merci pour votre aide
Charles




Publicité
Poster une réponse
Anonyme