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 :

Bouton appelant une procédure inactif [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2008
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2008
    Messages : 225
    Par défaut Bouton appelant une procédure inactif
    Bonjour le forum,
    J'ai créé un bouton en suivant scrupuleusement les conseils donnés dans le post
    http://www.developpez.net/forums/d13...argeur-bouton/
    La procédure appelée par le bouton est définie dans la création du bouton.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        ProcName_LstBx = "btn_init_Lbx_Click"
    . Cette procédure se trouve dans la feuille du bouton.
    Je ne comprends pas pourquoi le bouton reste inactif. Quand je demande de montrer le code, une procédure btn_init_Lbx_Click est créée dans un nouveau module.
    Un membre du forum pourrait-il m'aider à raisonner pour résoudre ce problème?

    D'avance merci

    Harry

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 20
    Par défaut
    Mets ta procédure dans la procédure "btn_init_Lbx_Click" du module et le problème est réglé.

  3. #3
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2008
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2008
    Messages : 225
    Par défaut
    Bonjour VinceVBA,

    Merci d'avoir répondu.
    J'ai suivi le conseil mais, après sauvegarde et fermeture, à l'ouverture suivante du fichier, le bouton reste inopérant.

    Bonne Journée

    Harry

  4. #4
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2008
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2008
    Messages : 225
    Par défaut
    Le motif de la non-réactivité du bouton était dû à la propriété "visible = false" qui suivait la propriété "onAction". J'ignorais que l'état visible ou non affectait les autres caractéristiques.

    Bonne journée

    Harry

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Par défaut
    Bonjour,

    Une autre piste en utilisant un Contrôle ActiveX CommandButton plutôt qu'un Contrôle de formulaire bouton

    Copiez le code suivant dans un module standard
    Code : 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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Sub CreateCommandButton()
    Const NOM_BOUTON As String = "MonBoutonPerso"
    Dim OL As OLEObject
    Dim CB As CommandButton
     
    On Error Resume Next
    ActiveSheet.OLEObjects(NOM_BOUTON).Delete
    On Error GoTo 0
     
    Set OL = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
        Left:=400, Top:=10, Width:=0, Height:=0)
    OL.Name = NOM_BOUTON
     
    Set CB = OL.Object
    With CB
      .Caption = "Autant en emporte le vent"    'myText
      With .Font
        .Name = "Century Schoolbook"
        .Bold = True
        .Size = 12
      End With
      .AutoSize = True
     
      '--- Couleurs du fonds et du texte ---
      .ForeColor = RGB(255, 0, 0)     'texte
      .BackColor = RGB(170, 170, 255) 'fonds
    End With
    End Sub
     
    Sub MaProc()
    MsgBox "coucou"
    End Sub
    Copiez le code suivant dans la fenêtre de code de la feuille concernée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub MonBoutonPerso_Click()
    Call MaProc
    End Sub
    Je joins un classeur exemple pour plus de facilité.

  6. #6
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2008
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2008
    Messages : 225
    Par défaut
    Bonjour PMO2017,

    Merci pour cette intéressante approche.
    En testant le fichier xslm téléchargé, je suis surpris qu'en exécution pas à pas (F8), une erreur est donnée sur l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set OL = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
        Left:=400, Top:=10, Width:=0, Height:=30)
    OL.Name = NOM_BOUTON
    "Impossible d'entrer en mode arrêt maintenant".
    Pas de souci en exécution normale.
    Je prends aussi la balle au bond pour poser la question: quelle est la différence (avantage, inconvénient) entre Contrôle ActiveX CommandButton plutôt qu'un Contrôle de formulaire bouton. Si vous aviez quelques pistes à ce sujet, je suis preneur.

    Bonne fin de journée

    Harry.

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

Discussions similaires

  1. Appel par bouton d'une procédure avec argument
    Par defluc dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 10/05/2012, 15h48
  2. [VB.NET]Comment appelé une procédure click d'un bouton?
    Par mustang-f27 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 25/11/2006, 13h01
  3. Comment appeler une procédure ?
    Par darkmalak01 dans le forum Débuter
    Réponses: 2
    Dernier message: 03/10/2005, 19h05
  4. comment appeler une procédure événementielle
    Par OutOfRange dans le forum Débuter
    Réponses: 8
    Dernier message: 03/06/2005, 19h32
  5. [appeler une procédure stockée]
    Par viny dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 10/03/2005, 22h38

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