Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Supprimer certaines formes personnalisées

  • Initiateur de la discussion Initiateur de la discussion pat66
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

pat66

XLDnaute Impliqué
Bonjour le forum,

Je souhaite supprimer toutes formes de ma feuille sauf les 5 ci dessous en cliquant sur la forme "Ellipse 624"
"Ellipse 624", "Rectangle : coins arrondis 212", "Rectangle : coins arrondis 213", "Rectangle : coins arrondis 214", "Rectangle : coins arrondis 219"

Je vous remercie d'avance pour votre aide et vos conseils

cdt
 
Bonjour pat66,
sans fichier exemple pas facile, mais essais avec cela :
VB:
Private Sub Ellipse624_Click()
    Dim Shape As Shape
    Dim ShapeName As String

    ' Liste des formes à conserver
    Dim ShapesToKeep As Variant
    ShapesToKeep = Array("Ellipse 624", "Rectangle : coins arrondis 212", "Rectangle : coins arrondis 213", "Rectangle : coins arrondis 214", "Rectangle : coins arrondis 219")

    For Each Shape In ActiveSheet.Shapes
        ShapeName = Shape.Name
        If Not IsError(Application.Match(ShapeName, ShapesToKeep, 0)) Then
            ' La forme doit être conservée, on passe à la suivante
        Else
            Shape.Delete
        End If
    Next Shape
End Sub
 
Bonjour

Il existe une icône dans Excel pour afficher le volet des formes qui permet de facilement agir sur celles-ci

L'installer dans la barre de lancement rapide : Volet sélection dans la liste des commandes
 
RE,
Comme dit précédemment avec un fichier exemple c'est mieux.
En attendant avez-vous vérifié cela:
  • Nom de la forme: Vérifiez attentivement le nom exact de la forme "Ellipse 624" dans votre feuille. S'il est différent, modifiez-le dans le code.
  • Liste des formes à conserver: Adaptez la liste ShapesToKeep en fonction des noms exacts des formes que vous souhaitez conserver.
 
re,

j'ai trouvé avec la solution de piga25, il suffit de renommer les formes à conserver en Anglais
Rounded Rectangle au lieu de Rectangle : coins arrondis
et le tour est joué... bizarre mais ca fonctionne

cdt
 
re,

eh bien je dois avoir un problème de configuration car je viens de retester ton fichier et cela efface bien toutes les formes sauf "oval 204" et le fait d'avoir réécrit le nom des formes en anglais cela fonctionne
 
Bonjour @pat66 🙂, à tous 😉,

Je ne vois pas comment ce que vous voulez faire peut être efficient avec l'utilisation du nom des formes.
Il suffit de supprimer une forme, de la recréer et son nom aura changé (c'est ce qui vous est d'ailleurs arrivé 😕). Et les noms attribués par Excel sont d'une taille démesurée et totalement contre-intuitifs.

J'ai pensé à une méthode faisant fi du nom des formes.

Le principe est d'attribuer aux formes à conserver une macro X et ne pas attribuer cette macro X aux autres formes. Ainsi quand on clique sur n'importe quelle forme ayant la macro X affectée, on supprime toutes les formes sauf celles qui ont cette macro X d'affectée. X est la macro de nom "Conserver" dans le code.

Il y a deux autres macros qui servent à gérer tout ça :
La macro : AffecterMacroConserver
  • Sélectionner les formes pour lesquelles on veut affecter la macro "Conserver" et lancer la macro
  • Ces formes seront conservées quand la macro "Conserver" sera exécutée
La macro : SupprimerMacroConserver
  • Sélectionner les formes pour lesquelles on désire ôter l'affectation de la macro "Conserver" et lancer la macro
  • Ces formes seront supprimées quand la macro "Conserver" sera exécutée
 

Pièces jointes

Dernière édition:
re,

Et bien, je viens enfin de tester la solution de Dranreb du #7, c'est simple, court et efficace, j'ai pas tout compris dans la syntaxe, mais je n'ai pas à nommer les formes dans la macro, je peux ajouter d'autres formes boutons, pour moi, mais c'est parfait !!!!

une précision, cette syntaxe efface les formes qui n'ont pas de macros à exécuter, c'est bien çà ??

un grand merci à tous et à Dranreb en particulier

cdt
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…