OVH Cloud OVH Cloud

Contrôles Image

2 réponses
Avatar
MPi
Bonjour,

Dans une feuille, j'ai 18 contrôles Image que je rends visibles ou non
selon la tâche effectuée. 12 ont une image fixe et 6 peuvent avoir une
image ou non.

Pour raffraîchir la feuille, je dois toutes les remettre visibles et
enlever les images (.Picture) contenues dans les 6 contrôles "aléatoires".

Bien sûr, comme je connais les noms des contrôles, je peux y aller
directement, en appelant chaque contrôle par son nom, ce qui me fait pas
mal de lignes de code pour rien.

Ce que je cherche à faire, c'est de les appeler en boucle, mais là je
coince... Comme il n'y a pas d'Index comme en VB, on doit user de
stratégie, j'imagine.

Voici la piste que je suis et dans laquelle je m'embourbe:
Dim Img As ??? ' Image ?, Control ?, Object ?
For Each Img In ???
If Typeof Img Is ??? Then
' ici ça va
'Si le chiffre à droite est < 7
Img.Visible = True
Img.Picture = LoadPicture()
...
ElseIf ' si le chiffre est > 6
Img.Visible = True
End if
Next

Michel

2 réponses

Avatar
jps
bonjour MPi
pour balayer, que penses-tu de :

For Each Img In ActiveSheet.Pictures

jps (tel le bourgeois gentilhomme : ce qu'il sait le mieux, c'est son
commencement)

"MPi" a écrit dans le message de news:
7qeDe.66510$
Bonjour,

Dans une feuille, j'ai 18 contrôles Image que je rends visibles ou non
selon la tâche effectuée. 12 ont une image fixe et 6 peuvent avoir une
image ou non.

Pour raffraîchir la feuille, je dois toutes les remettre visibles et
enlever les images (.Picture) contenues dans les 6 contrôles "aléatoires".

Bien sûr, comme je connais les noms des contrôles, je peux y aller
directement, en appelant chaque contrôle par son nom, ce qui me fait pas
mal de lignes de code pour rien.

Ce que je cherche à faire, c'est de les appeler en boucle, mais là je
coince... Comme il n'y a pas d'Index comme en VB, on doit user de
stratégie, j'imagine.

Voici la piste que je suis et dans laquelle je m'embourbe:
Dim Img As ??? ' Image ?, Control ?, Object ?
For Each Img In ???
If Typeof Img Is ??? Then
' ici ça va
'Si le chiffre à droite est < 7
Img.Visible = True
Img.Picture = LoadPicture()
...
ElseIf ' si le chiffre est > 6
Img.Visible = True
End if
Next

Michel


Avatar
MPi
Bonjour jps,

C'est exactement ce que je cherchais.
C'était pourtant simple...
Merci !

Michel

bonjour MPi
pour balayer, que penses-tu de :

For Each Img In ActiveSheet.Pictures

jps (tel le bourgeois gentilhomme : ce qu'il sait le mieux, c'est son
commencement)

"MPi" a écrit dans le message de news:
7qeDe.66510$

Bonjour,

Dans une feuille, j'ai 18 contrôles Image que je rends visibles ou non
selon la tâche effectuée. 12 ont une image fixe et 6 peuvent avoir une
image ou non.

Pour raffraîchir la feuille, je dois toutes les remettre visibles et
enlever les images (.Picture) contenues dans les 6 contrôles
"aléatoires".

Bien sûr, comme je connais les noms des contrôles, je peux y aller
directement, en appelant chaque contrôle par son nom, ce qui me fait
pas mal de lignes de code pour rien.

Ce que je cherche à faire, c'est de les appeler en boucle, mais là je
coince... Comme il n'y a pas d'Index comme en VB, on doit user de
stratégie, j'imagine.

Voici la piste que je suis et dans laquelle je m'embourbe:
Dim Img As ??? ' Image ?, Control ?, Object ?
For Each Img In ???
If Typeof Img Is ??? Then
' ici ça va
'Si le chiffre à droite est < 7
Img.Visible = True
Img.Picture = LoadPicture()
...
ElseIf ' si le chiffre est > 6
Img.Visible = True
End if
Next

Michel