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 :

Impossible d'assigner une macro à une forme [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut Impossible d'assigner une macro à une forme
    Bonjour,

    Le code suivant provoque une erreur 1004, "erreur définie par l'application ou par l'objet".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    For Each sh In ActiveSheet.Shapes(1).GroupItems
        If sh.TextFrame2.TextRange.Text <> "" Then
            sh.OnAction = "test"
            sh.Select
        End If
    Next sh
    Le fait d'ajouter le nom du classeur ne change rien.

    Pouvez-vous m'expliquer ?

    Merci d'avance.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    A quoi correspond la variable sh ?

  3. #3
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bonjour,

    Pour VBA c'est une shape, un élément d'un groupe de shapes.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 33
    Points : 48
    Points
    48
    Par défaut
    Bonjour,

    sh est une variable que tu n'as pas déclarée en tant que shape, l'erreur vient sans doute de la :
    Peut être que je suis loin de la réponse mais une variable sans type défini est par défaut une "variant" et donc non une "shape"

  5. #5
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Merci, mais non, ça ne change rien. D'ailleurs, le fait qu'il ne plante pas sur la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If sh.TextFrame2.TextRange.Text <> "" Then
    montre bien que VBA le reconnait comme shape, ce qui apparaît d'ailleurs dans la fenêtre des variables locales.

    L'enregistreur de macro me donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        ActiveSheet.Shapes.Range(Array("Freeform 58")).Select
        Selection.OnAction = "test"
    Quand je veux le rejouer, j'ai une erreur 1004 "Impossible de définir la propriété OnAction de la classe Drawing".
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  6. #6
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bonjour,

    La réponse est qu'il faut dégrouper les shapes avant s'associer les macros
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Code pour assigner une macro à une forme
    Par Daniela_ dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/09/2013, 12h11
  2. Assigner une macro à une photo Word 2007
    Par vincentIAPADRE dans le forum VBA Word
    Réponses: 1
    Dernier message: 19/09/2013, 23h40
  3. [VBA-E]Message d'erreur lors de l'affectation d'une macro + prob form
    Par V3lkin dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 22/11/2006, 14h07
  4. Appliquer une macro à une image
    Par erwan99 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/04/2006, 14h50
  5. [VBA-E] Associer une macro à une cellule
    Par cwain dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/04/2006, 13h50

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