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 :

Créer bouton par vba sur onglet graphique [XL-365]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Août 2012
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2012
    Messages : 4
    Par défaut Créer bouton par vba sur onglet graphique
    Bonjour,

    Je me permets de demander à la communauté après avoir cherché des heures sur différents forums sans trouver de solution.

    J'explique mon cas :

    J'ai développé un outil avec intrication de usf. Sur l'un des modules de l'outil, il est possible de générer automatiquement des graphiques.
    En fait ce qu'il se passe, c'est que je crée un nouvel onglet avec les données qui m'intéressent.
    Ensuite, je fais un graphique TCD sur ces mêmes données.
    Je copie le graph et et le colle dans un onglet graphique car l'image de ce dernier sera ensuite affiché sur le userform approprié. Il est en effet plus lisible.
    Sur mon usf, j'ai un bouton qui me permet d'aller interagir avec le graphique, mais c'est là que ça coince, impossible de créer un bouton via code sur l'onglet graph qui permettrait à l'utilisateur de retourner directement sur le userform, un message d'erreur d'exécution 1004 me disant : "Impossible de lire la propriété Add de la classe Buttons"

    Voici le morceau de mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Sheets(2).Select
    ActiveSheet.Buttons.Add(2820295.5, 1953157.125, 534252.375, 239661.75).Select
    Selection.OnAction = "'retour_menu'"
    Selection.Caption = "Retour au menu"
    Rien de plus simple...

    C'est le code qui est généré automatiquement par excel lorsque je fais un enregistrement de macro. Le plus étrange, c'est que manuellement ça fonctionne.

    Si vous avez des idées, je suis preneur parce que là, je sèche !
    Sur un onglet lambda, cette procédure fonctionne parfaitement.

    En vous remerciant pour vos réponses,
    Etienne

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 374
    Par défaut
    Bonjour,

    En cherchant sur internet j'en arrive à la conclusion qu'il n'est effectivement pas possible de créer directement un bouton dans une feuille 'graphe' et que la solution est de faire un copier-coller d'un bouton placé sur une autre feuille puis de le positionner.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub CopierBouton()
        Sheets("Feuil1").Shapes("Button 1").Copy
        Sheets("Graph1").Select
        ActiveChart.Paste
        Selection.ShapeRange.IncrementLeft 300
        Selection.ShapeRange.IncrementTop 18
        Selection.OnAction = "Macro1"
        Sheets("Graph1").Select
    End Sub
    Bonne continuation.

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2012
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2012
    Messages : 4
    Par défaut
    Déjà merci de consacrer du temps à ce sujet.

    J'étais tombé effectivement sur ce style de solution mais je n'avais pas réussi.
    Je vais réessayer avec ce code et je vous tiendrai au courant de mes résultats.

    Merci

  4. #4
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Par défaut
    Bonjour,

    Simplement comme ça :
    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Option Explicit
    Sub BoutonFormulaireSurGraphique()
    ' Ajoute un bouton sur un graphique.
    Dim c As Chart                    'graphique
    Dim b As Button                   'bouton
    Const x As Integer = 60           'Abscisse du bouton
    Const y As Integer = 50           'Ordonnée du bouton
    Const w As Integer = 100          'Largeur du bouton
    Const h As Integer = 20           'Hauteur du bouton
     
      Set c = ThisWorkbook.Charts("Graph1")
      Set b = c.Buttons.Add(x, y, w, h)
      With b
        .Name = "Btn 1"
        .Caption = "Bouton 1"
        .Font.Name = "Arial"
        .Font.Size = 12
        .Font.Bold = True
        .OnAction = "ClicSurBouton"
      End With
     
    End Sub

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2012
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2012
    Messages : 4
    Par défaut
    Je reviens sur ce sujet pour livrer mon retour.

    Après avoir testé les deux solutions, seule votre solution EricDgn fonctionne.
    Je l'ai adaptée à mon interface, c'est vraiment nickel !! Encore merci.

    Par contre, la vôtre Patrice740 me renvoie le même code erreur. Tout même, merci pour le code, il peut être fort utile pour les autres cas.

    Bonne continuation à tous.

  6. #6
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Par défaut
    Citation Envoyé par peaceti Voir le message
    Je reviens sur ce sujet pour livrer mon retour.

    Après avoir testé les deux solutions, seule votre solution EricDgn fonctionne.
    Je l'ai adaptée à mon interface, c'est vraiment nickel !! Encore merci.

    Par contre, la vôtre Patrice740 me renvoie le même code erreur. Tout même, merci pour le code, il peut être fort utile pour les autres cas.

    Bonne continuation à tous.
    Avec quelle version d'Excel et quel OS ?
    Chez moi, ça fonctionne avec Excel 2003, Excel 2007, Excel 2013 et Excel 2016 (32 bits) et W10 32 et 64 bits

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

Discussions similaires

  1. Lancer une macro en cliquant sur un bouton par vba
    Par doublem93 dans le forum VBA Access
    Réponses: 1
    Dernier message: 23/02/2017, 21h57
  2. Bouton par défaut sur une MSGBOX
    Par zooffy dans le forum Contribuez
    Réponses: 15
    Dernier message: 30/10/2013, 15h24
  3. [XL-2000] TCD - Voir détail par VBA sur liste de choix
    Par Carambar dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/10/2009, 15h51
  4. Bouton par défaut sur pression de la touche ENTER
    Par gufra dans le forum GWT et Vaadin
    Réponses: 4
    Dernier message: 15/11/2007, 16h46
  5. Mettre une image sur bouton par VBA????
    Par electrosat03 dans le forum IHM
    Réponses: 3
    Dernier message: 17/02/2006, 01h54

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