morickno
Messages postés117Date d'inscriptionvendredi 22 avril 2005StatutMembreDernière intervention26 juin 2007
-
10 mai 2005 à 17:43
mrdep1978
Messages postés402Date d'inscriptionjeudi 25 novembre 2004StatutMembreDerniè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 *
mrdep1978
Messages postés402Date d'inscriptionjeudi 25 novembre 2004StatutMembreDernière intervention 7 juin 20097 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