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 :

CommandButton Dynamique sur Sheets [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 127
    Par défaut CommandButton Dynamique sur Sheets
    Bonjour,

    Je tente désespérément de faire un CommandButton Dynamique sur une Sheets.

    Je m'explique, je travail sur un projet dont le langage de programmation est en Excel VBA.

    J'arrive à faire des CommandButton dynamique dans des Userforms, c'est à dire que ces boutons n'existe pas dans la Userform mais à son initialisation elle crée autant de boutons que de valeur dans la colonne "A" d'une de mes feuilles par exemple, avec un code derrière chaque bouton en fonction de sa .Caption.

    Dans un Userform, ça m'a donné du fil à retordre mais j'y suis parvenu.

    Par contre, faire cela dans une Sheet me semble totalement différent et après moulte essais d'adaptation de mon code, je ne parviens par à le faire.

    Arriveriez-vous à m'aider ?

    En résumé, ce que j'aimerai faire par exemple ( pour que je puisse transposer un possible exemple dans mon projet ), c'est qu'à partir d'un commandbutton, je puisse créer un autre commandbutton sur une autre feuille qui possèdera le code que je lui donnerai, mais pour faire simple, faisons lui juste faire un MsgBox "It's Working!".

    J'attends vos retour pour que nous puissions travailler sur ce problème, et je remercie d'avance la communauté VBA de ce forum qui m'a déjà bien aidé durant les années précédentes !

  2. #2
    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,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub test1()
        Dim Btn As Object
        Set Btn = ActiveSheet.Buttons.Add(126.75, 39.75, 46.5, 19.5)
        With Btn
            .Caption = "Appuie !"
            .OnAction = "Macro"
        End With
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Macro()
        MsgBox "It's Working!"
    End Sub

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 127
    Par défaut
    Merci Daniel.C de m'aider !

    Enfait j'avais déjà fait un code de ce genre mais le paramètre .OnAction ne fonctionne jamais, et dans votre code, c'est pareil. Il ne fonctionne pas, j'ai vu par ci et par là que .OnAction est capricieux avec Excel 2010.

    Auriez-vous une autre solution ?

  4. #4
    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
    Je n'ai pas de problème, même avec Excel 2010... D'où tien-tu qu'il y a un problème avec cette version ? Publie ton code.

  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
    Tu peux essayer avec un bouton des contrôles ActiveX :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub test()
    Dim CB As Object
    Set CB = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
     Left:=100, Top:=100, Width:=40, Height:=60)
    Set CB = ActiveSheet.OLEObjects(1)
    CB.Name = "CB1"
    With CB.Object
        .Caption = "Appuie!"
    End With
    End Sub
    Dans le module de la feuille, mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CB1_Click()
        MsgBox "It's Working!"
    End Sub

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 127
    Par défaut
    Je viens de tester votre nouveau code,un bouton se crée mais rien ne se passe.

    Dans le CommandButton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub CommandButton2_Click()
        Dim CB As Object
        Set CB = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
         Left:=100, Top:=100, Width:=40, Height:=60)
        Set CB = ActiveSheet.OLEObjects(1)
        CB.Name = "CB1"
        With CB.Object
            .Caption = "Appuie!"
        End With
    End Sub
    Et dans un module :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CB1_Click()
        MsgBox "It's Working!"
    End Sub
    Pour ce qui est de .OnAction, j'avais fouillé sur le net quand je voulais l'utilisé et les résultats me disaient qu'à partir de 2007 la fonction n'était plus pris en charge, peut être étais-je tombé sur un mauvais ragot cependant chez moi cette fonction ne fonctionne pas.

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

Discussions similaires

  1. Un image qui se redimensionne dynamiquement sur toute la cel
    Par Furius dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 10/01/2006, 23h10
  2. Réponses: 9
    Dernier message: 16/11/2005, 11h32
  3. Connexion dynamique sur une base SQL Server
    Par jh0483 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 19/08/2005, 15h10
  4. [CR] Groupement dynamique sur plusieurs champs paramètrés
    Par CDRIK dans le forum SAP Crystal Reports
    Réponses: 8
    Dernier message: 07/06/2004, 17h55
  5. [VBA-E] Dim dynamique sur un tableau
    Par Vince69 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/12/2002, 13h32

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