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 :

Problème de boutons dans des onglets


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 52
    Points : 38
    Points
    38
    Par défaut Problème de boutons dans des onglets
    Bonjour,

    J'ai une application qui creer dynamiquement des onglets.
    Sur chacun de ces onglets j'ai crée un bouton (le même qui appellera la même méthode quand on lui clique dessus)

    mon code pour la creation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Sub CreationBoutonMAJOngletsVersGlobale()
     
    Dim Obj As Object
    Dim Code As String
     
    ' creation du bouton
        Set Obj = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
        Link:=False, DisplayAsIcon:=False, Left:=200, Top:=400, Width:=200, Height:=35)
        Obj.Name = "boutonMAJOngletsVersGlobale"
        ActiveSheet.OLEObjects(1).Object.Caption = "MAJ Feuille Globale"
     
    End Sub
    Le bouton s'affiche dans chaque onglet comme il faut.

    Ensuite dans ma feuille de code Module1, j'insère la méthode

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Public Sub boutonMAJOngletsVersGlobale_Click()
    MsgBox ("Hello")
    End Sub
    Mais aucune réponse du bouton quand je clique dessus.

    Par contre, si une fois que mes onglets ont été généré j'insère cette même méthode dans le code de chacune des feuilles dans la partie Microsoft Excel Objets ça marche mais c'est pas bon pour moi puisque c'est pas dynamique.


    Pouvez vous m'aider ?
    Merci !

  2. #2
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Salut,
    J'ai pas testé mais essaies ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub CreationBoutonMAJOngletsVersGlobale()
     
    Dim Obj As Object
    Dim Code As String
     
    ' creation du bouton
        Set Obj = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
        Link:=False, DisplayAsIcon:=False, Left:=200, Top:=400, Width:=200, Height:=35)
        Obj.Name = "boutonMAJOngletsVersGlobale"
        ActiveSheet.OLEObjects(1).Object.Caption = "MAJ Feuille Globale"
        Obj.OnAction = "MsgBoxBouton" 'Affecte une macro au bouton
     
    End Sub
    Et le petit module de MsgBox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub MsgBoxBouton()
    MsgBox ("Hello")
    End Sub

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    En effet, tu crées bien le bouton, tu le nommes bien mais tu ne lui associes pas de macro... Ça, ça ne peut pas fonctionner.
    Test ça en plaçant tout le code dans un module standard et lance la macro "Test".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub test()
    Dim TonBouton As Shape
        With Worksheets("feuil1")
            Set TonBouton = .Shapes.AddFormControl(xlButtonControl, 35.25, 7.5, 147, 22.5)
            TonBouton.OnAction = "LaMacroDuBouton_QuandClic"
            TonBouton.TextFrame.Characters.Text = "Je suis un bouton"
        End With
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub LaMacroDuBouton_QuandClic()
        MsgBox ("Je suis la macro lancée par le bouton !")
    End Sub
    Bonne journée

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 52
    Points : 38
    Points
    38
    Par défaut
    Merci. La première méthode en ajoutant juste les OnAction ne marche pas.

    Je vais essayer de le faire en insérant le code dans chaque feuille par macro.

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Citation Envoyé par nicolav Voir le message
    Merci. La première méthode en ajoutant juste les OnAction ne marche pas.

    Je vais essayer de le faire en insérant le code dans chaque feuille par macro.
    Tu as raison, quand on propose une solution qui fonctionne il faut toujours en chercher une autre

    Ceci dit, un olebouton demande que le code soit dans la feuille de code de la feuille de calculs, non dans un module, et tu trouveras le code pour l'insertion du code par macro ici, dans Contribuez
    A toutes fins utiles
    Bonne suite dans tes expériences

  6. #6
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 52
    Points : 38
    Points
    38
    Par défaut
    aie j'avais pas essayé la tienne de méthode ouskel'n'or
    J'avais essayé celle de la première réponse.

    La tienne marche bien effectivement
    Merci

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 07/07/2015, 11h32
  2. Problème affichage dans des onglets tabHost
    Par flavdu44 dans le forum Android
    Réponses: 3
    Dernier message: 24/11/2011, 17h36
  3. [XL-2003] Problème lié à la suppression de boutons dans un onglet masqué
    Par onobyone dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 16/09/2011, 18h25
  4. Naviguer dans des onglets à l'aide de boutons
    Par xeak2008 dans le forum Débuter
    Réponses: 5
    Dernier message: 26/09/2008, 10h36
  5. CListCtrl dans des onglets
    Par BaBeuH dans le forum MFC
    Réponses: 3
    Dernier message: 13/06/2005, 12h59

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