Supprimer toutes les formes d'un classeur

bonjour a tous, je cherche une macro qui supprimerait toutes les formes s'appelant de 1 à 20 sur mon fichier.

je demande votre aide car je ne comprends rien aux boucles et même en cherchant sur internet je n'arrive pas à les adaptés.

je vous joint un fichier "test"

merci d'avance.

Bonjour

Un essai :

Sub SupprForme ()

Dim Sht As Worksheet, Shp As Shape

For Each Sht In ThisWorkbook.Worksheets 'Boucle sur les feuilles
    For Each Shp In Sht.Shapes 'Boucles sur les formes
        If Shp.Name Like "#*" Then 'Si le nom de la forme commence par un chiffre
            If CInt(Shp.Name) <= 20 Then Shp.Delete 'Conversion du nom en nombre, et suppression si nombre inférieur ou égal à 20
        End If
    Next Shp
Next Sht

End Sub

Merci beaucoup ! c'est vraiment du charabia ces boucles pour moi.

encore merci !

Merci beaucoup ! c'est vraiment du charabia ces boucles pour moi.

encore merci !

Ce n'est pas très compliqué : les formes / graphiques sont des objets Shape. Ils sont tous répertoriés dans une collections (Shapes). La boucle consiste donc à balayer toute la collection Shapes de chaque feuille (For Each ==> Pour tous les... ; In [collection] ==> Dans [collection]). J'ai également ajouté au préalable une boucle pour balayer les différentes feuilles (Worksheets), et ne pas limiter la suppression à une seule feuille.

PS :

au top ! Encore merci. J'ai pu mettre la macro en application et ça fonctionne à merveille.

super pour les explications mais c'est cette ligne que j'arrive pas à comprendre :

If Shp.Name Like "#*" Then 'Si

super pour les explications mais c'est cette ligne que j'arrive pas à comprendre :

If Shp.Name Like "#*" Then 'Si

Bonjour !

If [condition] Then [instruction(s)] --> Si ... Alors

Shp.Name --> Nom de la forme (par exemple "Rectangle 1")

Like permet de faire une comparaison avec un "pattern", c'est à dire un certain format / structure. Ici # désigne n'importe quel chiffre, et * remplace n'importe quel caractère, en quantité variable (aucun caractère ou >100 caractères, ça fonctionne).

En clair, il s'agit juste de vérifier que le nom de la forme commence par un chiffre.

Rechercher des sujets similaires à "supprimer toutes formes classeur"