IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Suppression de shapes


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Octobre 2015
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2015
    Messages : 54
    Points : 38
    Points
    38
    Par défaut Suppression de shapes
    Bonjour à vous,

    Je recherche une macro qui me permet de supprimer une shape qui est sélectionnée par l'utilisateur.

    Je m'explique: L'utilisateur a placé une shape dans une cellule avec macro. Tout se fait à merveille.

    Je recherche donc une macro qui permettrait à l'utilisateur de supprimer la shape avec un bouton.

    Le bouton ouvrirait une fenêtre lui demandant de sélectionner la shape qu'il veut supprimer et de confirmer son geste. (Est-ce possible????)

    Sinon j'avais débuté une macro qui sélectionne la cellule qui présente la shape avec un offset afin de la supprimer. Par contre, le problème il supprime l'entièreté de la cellule et non pas juste la shape.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Sub Supp_Shape()
     
     
    Dim R As Range
     
     
    Set R = ActiveSheet.Shapes(Application.Caller).TopLeftCell
        Application.Union(R.Offset(0, -1)).Delete
        Set R = Nothing
     
     
    End Sub
    Le plus simple pour moi serait la première option. Sinon je peux vivre avec la réparation de mon code.

    Merci

    Je suis désolé si je ne suis pas clair dans mes explications. Pour moi sa l'est dans ma tête. :-)

  2. #2
    Membre chevronné
    Inscrit en
    Septembre 2007
    Messages
    1 134
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 134
    Points : 1 808
    Points
    1 808
    Par défaut
    Bonjour
    Citation Envoyé par Master_x_99 Voir le message
    Je recherche une macro qui me permet de supprimer une shape qui est sélectionnée par l'utilisateur.
    Avec cette instruction tu le réalises :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        If MsgBox("Voulez-vous supprimer : " & Selection.Name, vbYesNo, "Suppression forme") _
            = vbYes Then Selection.Delete

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Octobre 2015
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2015
    Messages : 54
    Points : 38
    Points
    38
    Par défaut
    Je crois qu'il ne sera pas possible d'utiliser la fonction msgbox tel qu'indiqué par anasecu.

    Alors... Je vais modifier un peu ma demande.

    J'ai un bouton qui doit contenir la commande pour supprimer les 3 shapes à la gauche. Les shapes sont situées dans les 3 cellules à la gauche du bouton.

    Je crois qu'en utilisant la fonction Offset je pourrais résoudre mon problème.

    Avec le code donné plus haut je n'y arrive pas. Je n'arrive pas a sélectionner seulement les shapes pour les supprimer.....

    Avez vous une solution pour moi?

    Merci

  4. #4
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par Master_x_99 Voir le message
    Je recherche donc une macro qui permettrait à l'utilisateur de supprimer la shape avec un bouton.
    Bin... le bouton Suppr fait ça très bien sans avoir besoin de macro.
    Je ne vois pas comment il serait possible de faire plus simple.

    Le bouton ouvrirait une fenêtre lui demandant de sélectionner la shape qu'il veut supprimer et de confirmer son geste. (Est-ce possible????)
    Il serait plus simple de faire la sélection avant d'appuyer sur le bouton.
    A l'appui sur le bouton, il suffit de placer la référence Selection dans une variable Objet ou Shape avant de demander la confirmation par MsgBox.
    S'il y a confirmation, la suppression pourra se faire par une méthode Delete sur la variable Shape.
    https://docs.microsoft.com/fr-fr/off...l.shape.delete

    Mais je ne vois pas ce que ça apporterait de plus par rapport au bouton Suppr.

    Sinon j'avais débuté une macro qui sélectionne la cellule qui présente la shape avec un offset afin de la supprimer.
    La Shape n'est pas "dans" la cellule mais au-dessus d'elle ou au même endroit qu'elle.
    Essayer de partir d'une référence de cellule pour atteindre une Shape, ce n'est pas une bonne idée parce que la Shape ne fait pas partie des propriétés de la cellule.
    Pour la retrouver, il faudrait scruter toutes les Shapes de la feuille pour voir laquelle a des limites situées à l'intérieur des limites de la cellules.
    Ce n'est pas infaisable mais c'est loin d'être une méthode simple.

    Citation Envoyé par Master_x_99 Voir le message
    J'ai un bouton qui doit contenir la commande pour supprimer les 3 shapes à la gauche. Les shapes sont situées dans les 3 cellules à la gauche du bouton.
    Tu partais sur une méthode compliquée et tu la compliques encore plus.
    Parce qu'avec cette méthode, il faudrait en plus trouver la cellule sur laquelle est posé le bouton. Voir même identifier la Shape représentée par le bouton.

    Je crois qu'en utilisant la fonction Offset je pourrais résoudre mon problème.
    Offset permet de déplacer la référence de cellule. Elle ne permet pas de localiser une Shape.

Discussions similaires

  1. Interdiction suppression shape dynamique
    Par Gordon72 dans le forum Excel
    Réponses: 2
    Dernier message: 20/04/2015, 10h52
  2. [XL-2000] Suppression de l'index des shapes
    Par LouiMz dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 28/10/2010, 11h42
  3. Suppression de SHAPE identifier sur chaque SLIDE
    Par slavovensky dans le forum VBA PowerPoint
    Réponses: 9
    Dernier message: 21/01/2009, 15h50
  4. [CR] suppression du bas de page
    Par grosjej dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 10/09/2002, 09h58
  5. Réponses: 3
    Dernier message: 12/06/2002, 22h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo