Griser bouton VBA [Résolu/Fermé]

Signaler
Messages postés
16
Date d'inscription
vendredi 18 septembre 2009
Statut
Membre
Dernière intervention
20 janvier 2010
-
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
-
Bonjour,
je veux griser un bouton une fois que l'utilisateur s'en est servi. J'ai déjà cherché sur le site et trouvé de nombreuses réopnses, mais cela ne marche pas avec mon code.
Etant débutant je ne comprend pas pourquoi.
Si quelqu'un peut m'aider se serait parfait.

Ci-dessous mon code :


Sub Bouton60_QuandClic()

Call Tri

Bouton61.SetFocus
Bouton60.Enabled = False

End Sub

Bouton61 étant un autre bouton présent sur la page ou se trouve la bouton60.

PS : problème, VBA me dit : objet requis

merci d'avance

18 réponses

Messages postés
16
Date d'inscription
vendredi 18 septembre 2009
Statut
Membre
Dernière intervention
20 janvier 2010

personne pour m'aider??
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
3 073
Salut,

pourquoi tu donnes le focus à un autre bouton avant ?
Messages postés
16
Date d'inscription
vendredi 18 septembre 2009
Statut
Membre
Dernière intervention
20 janvier 2010

j'ai lu sur les différent forum qu'il fallait mettre le focus sur un autre bouton pour pouvoir désactiver le premier.
Mais même sans mettre le focus sur un autre bouton cela ne marche pas...
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
3 073
voui, t'as raison, on ne peut pas modifier le contrôle actif.

Je te propose ça (testé chez moi) :

Me.Commande1.SetFocus
Me.Commande0.Enabled = False

'Me' fait référence à l'objet courant contenant le contrôle.
Messages postés
16
Date d'inscription
vendredi 18 septembre 2009
Statut
Membre
Dernière intervention
20 janvier 2010

Salut,

malheureusement j'ai déjà éssayé cette solution... mais ça ne marche toujours pas...


Sub Bouton60_QuandClic()

Call Tri

Me.Bouton61.SetFocus
Me.Bouton60.Enabled = False

End Sub

le message d'erreur qui apparait est le suivant :

Erreur de compilation : utilisation incorrect du mot clé Me

je ne sais pas si c'est le problème mais cela vient peut être de la création même de mon bouton...
j'ai vu sur les forums que certains utilisent des "privatesub". je ne sais pas vraiment quelle est la différence avec une "sub" normal mais c'est peut être ça ?

en tout cas merci d'avoir essayé...
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
3 073
Tu as une version française ou anglaise ?

parce qu'en principe, on devrait avoir Sub Bouton60_Click()
Messages postés
16
Date d'inscription
vendredi 18 septembre 2009
Statut
Membre
Dernière intervention
20 janvier 2010

Je pense avoir une version française parce que ça marche avec le "Sub Bouton60_QuandClic()".
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 164
Bonjour,

Désolé de m'incruster...

Qu'y a-t-il dans ta procédure Tri ? Le problème vient peut de là, et non des boutons.

;o)
Messages postés
16
Date d'inscription
vendredi 18 septembre 2009
Statut
Membre
Dernière intervention
20 janvier 2010

Salut,

"Tri" est une procédure qui me permet de classer des données selon différents critères.
La procédure marche très bien toute seule et ne fait appel à aucunes variables extèrieures. Je ne pense pas que le problème vienne de là mais je vais vérifier quand même.

Et pas de problème d'incruste, toute les idées sont bonnes à prendre.
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
3 073
tu peux tenter un me.bouton61.visible = false ?

ton erreur du début "objet requis", elle est sur quelle ligne ?
Messages postés
16
Date d'inscription
vendredi 18 septembre 2009
Statut
Membre
Dernière intervention
20 janvier 2010

l'erreur est sur la ligne :
Me.Bouton61.SetFocus

je vais tenter le "visible"...
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
3 073
Il existe ton bouton61 ?
Messages postés
16
Date d'inscription
vendredi 18 septembre 2009
Statut
Membre
Dernière intervention
20 janvier 2010

Bon...
ça me fait les mêmes problèmes qu'avec "enabled" :

si je ne met pas de "Me", j'ai une erreur "objet requis"
si je met Me.bouton61.visible = false , j'ai une "Erreur de compilation : utilisation incorrect du mot clé Me"
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
3 073
J'ai cru que c'était avec ACCESS, si c'est pour EXCEL, "me" ne marche pas...
Messages postés
16
Date d'inscription
vendredi 18 septembre 2009
Statut
Membre
Dernière intervention
20 janvier 2010

Oui le bouton éxiste.
en tout cas il apparait sur la feuille de calcul et quand j'appui dessus il fait bien la procédure "tri" avant de planter...
Messages postés
16
Date d'inscription
vendredi 18 septembre 2009
Statut
Membre
Dernière intervention
20 janvier 2010

Oui je suis bien sous excel. désolé de pas avoir précisé.
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 164
Ton bouton est un outil "Formulaire" pour lancer une macro et non un contrôle de la boîte à outils, tu ne peux pas passer le focus sur ce type bouton.
Messages postés
16
Date d'inscription
vendredi 18 septembre 2009
Statut
Membre
Dernière intervention
20 janvier 2010

!!
ok
Et comment créer un contrôle de la boîte à outils?
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 164
Il faut afficher la barre outil Visual Basic (menu Afficher -> cocher Visual Basic)

Tu ouvres la boîte à outils, tu as différents contrôles, dont le bouton. Tu le colles sur ta feuille. Tu double-cliques dessus, tu es dans l'éditeur VB de la feuille et tu peux faire directement :

Private Sub CommandButton1_Click()
    Me.CommandButton1.Enabled = False
End Sub


;o)
Messages postés
16
Date d'inscription
vendredi 18 septembre 2009
Statut
Membre
Dernière intervention
20 janvier 2010

Héhé!!!

ça marche parfaitement !!! :)))

merci beaucoup

a+
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 164
De rien

Tu peux peut être mettre le sujet en "résolu". Merci

Bonne continuation.

;o)