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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    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 208
    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.

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

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    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 208
    Par défaut
    Bonjour,

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

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 33
    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 confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    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 208
    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".

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    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 208
    Par défaut
    Bonjour,

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

+ 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