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

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
 

piga25

XLDnaute Barbatruc
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
 

chris

XLDnaute Barbatruc
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
 

piga25

XLDnaute Barbatruc
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.
 

pat66

XLDnaute Impliqué
re,

j'ai bien vérifié, mais je vous joint le fichier et j'ai du renommé les formes puisque toutes les formes se sont effacées

merci
 

Pièces jointes

  • Cellule arrondie.xlsm
    20.2 KB · Affichages: 4

pat66

XLDnaute Impliqué
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
 

pat66

XLDnaute Impliqué
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
 

mapomme

XLDnaute Barbatruc
Supporter XLD
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

  • pat66- Suppr Formes sauf- v1.xlsm
    130.6 KB · Affichages: 2
Dernière édition:

pat66

XLDnaute Impliqué
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
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…