cs_nico39
Messages postés56Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention 4 octobre 2006
-
29 juil. 2006 à 17:07
cs_nico39
Messages postés56Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention 4 octobre 2006
-
30 juil. 2006 à 00:45
Bonjour à tous,
J'ai une feuille Excel contenant plusieurs Controls dont quelques Progressbars et Buttons. J'aimerais appliquer une même routine à toutes mes ProgressBar en cliquant sur un des boutons.
Pour cela, est-ce que quelqu'un d'entre vous sait alors comment lister tous les contrôles présents sur ma feuille, et puis en sélectionner selon le type. J'ai essayé le code suivant mais sans succès:
For Each pb In Worksheets(1).Controls
If TypeName(pb) = "ProgressBar" Then MsgBox pb.Name
Next pb
avec pb déclaré comme Object
Il semble que ça bloque à "Worksheets(1).Controls". J'ai également essayé avec Controls tout seul, Worksheet(1).ProgressBars, ProgressBars tout seul,... mais rien à faire, la machine ne veut rien comprendre...
Je pensais éventuellement rassembler toutes les ProgressBars au sein d'un groupe de contrôles, mais en parcourant le forum, j'ai constaté que cela est impossible en VBA...
De plus, je ne souhaite pas utiliser d'Userform pour mon application (À terme, une quinzaine de ProgressBars vont remplir ma feuille Excel, donc il me faut de la place et de la flexibilité, que je n'ai pas ou que j'ai moins avec un Userform)...
J'espère avoir bien posé mon problème.
Je vous remercie d'avance pour vos réponses/conseils.
Nico.
[config: Excel 2003 / XP SP2]
Amateurement vôtre...
A voir également:
[VBA/Excel] Lister tous les contrôles situés sur une feuille Excel
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 29 juil. 2006 à 22:13
Salut,
essaie ça :
<small>
Coloration syntaxique automatique </small>
Dim Obj As OLEObject
For Each Obj In Worksheets("Nom de la Feuille").OLEObjects
If TypeOf Obj.Object Is MSForms.ProgressBar Then
' traitement de ton code ...............................
End If
Next Obj
' je ne te garantie pas que MSForms.ProgressBar fonctionne,
' peut-être que quelques recherches s'imposent.
' (en tout cas, avec MSForms.TextBox, ça fonctionne !)
cs_nico39
Messages postés56Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention 4 octobre 2006 30 juil. 2006 à 00:45
Grand merci à Mortalino !!!
Mortalino : Il faut juste remplacer dans ton bout de code MSForms.ProgressBar par ProgressBar tout seul, et ça marche du tonnerre !!!
Merci aussi à Dolphi Boy pour ses pistes de recherches.