Shapes dans VB Excel

Résolu
morickno Messages postés 117 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 26 juin 2007 - 10 mai 2005 à 17:43
mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 - 10 mai 2005 à 18:54
J'insert en automatique des images en utilisant des shapes.

j'ai 3 Shapes nommées Picture 1;Picture 2;Picture 3
et 2 autres nommées Autres 1; Autres 2
je selectionne les images Autres en utilisant dans la feuille courante:

ActiveSheet.Shapes("Autres 1").Select
et
ActiveSheet.Shapes("Autres 2").Select

j'aimerai savoir si une methode me permettait de selectionner des images sans passer tous sont nom en parametre, ainsi je pourrai selectionner toutes les images qui commencent par "Autres" comme par exemple Autres *

1 réponse

mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 7
10 mai 2005 à 18:54
Voila ce que je te propose pour démarrer.
Si tu veux gérer les caractères de type "*", il faut voir modifier la condition

Public Sub SelectShapes(a_Pattern As String)
Dim ls_Shape As Shape
Dim ltab_Shapes() As Variant
'Initialise le tableau de formes à sélectionner
ReDim ltab_Shapes(0)
'Parcourt toutes les formes de la feuille active
For Each ls_Shape In ActiveSheet.Shapes
'Si le nom de la forme commence par a_Pattern, on l'ajoute au tableau
If Left(ls_Shape.Name, Len(a_Pattern)) = a_Pattern Then
'Ajoute la forme au tableau
ltab_Shapes(UBound(ltab_Shapes)) = ls_Shape.Name
'Agrandit le tableau
ReDim Preserve ltab_Shapes(UBound(ltab_Shapes) + 1)
End If
Next ls_Shape
'Si le nb d'éléments dans le tableau est supérieur à 0, on sélectionne
If UBound(ltab_Shapes) > 0 Then
'On supprime le dernier élément du tableau, car la boucle ajoute une ligne vide
ReDim Preserve ltab_Shapes(UBound(ltab_Shapes) - 1)
'Sélectionne les formes présentes dans le tableau
ActiveSheet.Shapes.Range(ltab_Shapes).Select
End If
End Sub

Sub Macro2()
SelectShapes "Autres"
End Sub
3
Rejoignez-nous