Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
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 !
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
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 )
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
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
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)
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
- 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