Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

désactiver bouton dans barre perso

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Darnel

XLDnaute Impliqué
Bonjour

Petite question simple j'espère mais je n'ai pas trouver de réponse dans le forum

peut on activer/désactiver un bouton dans une barre attachée personnalisée en fonction de la feuille (onglet) qui est affichée ?
Si oui, comment peut on faire ?
Merci d'avance
 
Re : désactiver bouton dans barre perso

Bonjour Darnel,

Il te suffit de mettre sa propriété "Enabled" à False par le biais d'un test sur la feuille

Code:
If Sheets("Je ne veux pas de boutn").Select Then
Set MonBouton = MonMenu.Controls.Item(2)
    With MonBouton
         .Enabled = False
    End With
End If

Le deuxième bouton de mon Menu personnalisé "MonMenu" sera inactif

Cordialement
 
Re : désactiver bouton dans barre perso

Bonjour


Je rencontre des difficultés à faire fonctionner correctement le code :
Ou dois je le placer exactement : j'ai essayer dans thisworkbook, mais je n'ai pas du mettre le bon nom de Macro car cela n'avait pas l'air de fonctionner.

le nom de ma barre étant Fiche de synthèse, quand je le met dans ton code comme ceci :

If Sheets("Je ne veux pas de boutn").Select Then
Set MonBouton = fiche de synthèse.Controls.Item(2)
With MonBouton
.Enabled = False
End With
End If

Cela bug
quand je remplace comme suit :

If Sheets("Je ne veux pas de boutn").Select Then
Set MonBouton = CommandBars("fiche de synthèse").Controls.Item(2)
With MonBouton
.Enabled = False
End With
End If

cela semble fonctionner

Enfin, comme en réalité, je souhaite desactiver le bouton sur toutes les feuille sauf trois, je pense inverser le test ( si feil1 activée, alors Enable = True )

Merci
 
Re : désactiver bouton dans barre perso

Bonjour Darnel,

1) en effet

Code:
Set MonBouton = fiche de synthèse.Controls.Item(2)

est incorrect. Cette bourde est due à un copier coller trop rapide de mon code.

Code:
Set MonBouton = CommandBars("fiche de synthèse").Controls.Item(2)

est plus adéquat

ou bien

Code:
Set mabarre = Commandbars("fiche de synthèse")
Set mon bouton = mabarre.Controls.Item(2)

ce que j'avais fait car je l'utilisais sur plusieurs barres

Maintenant
Ou dois je le placer exactement : j'ai essayer dans thisworkbook, mais je n'ai pas du mettre le bon nom de Macro car cela n'avait pas l'air de fonctionner.
personnellement je mettrais un appel à cette macro dans chacune des feuilles, après avoir nommé cette dernière et l'avoir copiée dans un module.

Petit truc supplémentaire : enregistre la avec un paramètre
Sub mamacro(ByVal actif As Boolean)

et dans chaque feuille appelle la (procédure évennementielle : Private Sub Worksheet_Activate() ) en précisant la valeur du paramètre :
True si tu veux que le bouton soit actif : mamacro(True)
False sinon : mamacro(False)

en espérant que cette fois ci je n'ai pas laissé trainer de bétises

Cordialement
 
Re : désactiver bouton dans barre perso

Re

Merci, je vais essayer pour voir si j'ai bien compris

si je veux interdire plusieurs feuilles (4 ou 5) et en autoriser plusieur aussi ( 3 ) dois je garder le même code, ou bien puis je me séparer du If ??
Car avec la méthode que tu m'indique

j'ai l'impression que ce n'est plus nécessaire
Mais peut être me trompe je ???😀

Merci pour ton aide quoiqu'il en soit
 
Re : désactiver bouton dans barre perso

Re,

Mon petit "truc" te permet de n'écrire le code d'interdiction ou non une seule fois pour toutes. Tu mets donc ce code dans un module, mais pour qu'il puisse fonctionner dans toutes les feuilles, il faut
1) paramétrer la macro

Code:
Sub mamacro (ByVal actif as Boolean)
 ...... le code .....
avec surtout la ligne :   .enabled = actif  ...   et non pas True ou False
End Sub

de ce fait lorsque cette macro sera appelée la première chose qui sera faite c'est de regarder la valeur du paramètre actif qui sera dans la procédure d'appel, donc

2) dans chaque feuille, faire une procédure d'appel à la macro en précisant si actif vaut True ou False, afin de rendre le bouton actif ou inactif quand tu sélectionneras la feuille
exemple :

Code:
Private Sub Worksheet_Select()
mamacro (False)
End Sub

et dans cette feuille le bouton sera inactif

A ta disposition
Bon courage
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
209
Réponses
3
Affichages
1 K
Compte Supprimé 979
C
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…