rendre actif , par code, un bouton d'une barre personnalisée

  • Initiateur de la discussion Initiateur de la discussion amibe
  • Date de début Date de début

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 !

A

amibe

Guest
Bonsoir,

Est-il possible de rendre actif, par code, un bouton non selectionné dans une barre de commande non personnalisée?
En effet, il semble que ceci:

dim barre as commandbar
msgbox barre.controls.count

ne donne que le nombre de boutons actifs de barre, si barre est une barre de commande non personnalisée et non pas le nombre total de boutons de la barre.

Merci à tous ceux qui pourraient m'apporter leur aide.
 
Bonjour,
merci de ta réponse. Ce que tu me proposes fonctionne avec une barre personnalisée. Il se trouve que cela ne marche pas sur une barre d'outils déjà fournie par le logiciel.
Essaie de "décocher" dans une barre par exemple "formatting" quelques "boutons". Le compteur de boutons ne compte plus ceux qui viennent d'être désactivés. Mon pb est alors d'essayer de les réactiver par code.
application.commanbars("Formatting").controls.count ne fournit que le nombre de boutons effectivement actifs.
Par contre cela marche bien sur une barre personnalisée. Que le bouton soit actif ou pas, le compte de boutons est toujours correct.

As-tu une idée pour résoudre ce problème?
merci
 
Re

Pour moi ça fonctionne quelque soit le type de barre personnelle ou application il faut juste trouvé le nom ou l'index de la barre qui t'interresse et ensuite pour remettre la barre à 'zéro' utilse

application.CommandBars(1).Reset

dis moi si cela repond à ta question

Voilà

@+Vincent

pour info xl 97 et windows xp
 
Bonjour,

Merci de votre patience et de votre réponse.
Effectivement, le fait de revenir à la "configuration de sortie d'usine" permet de résoudre le problème sauf s'il y a quelques boutons "perso" dans la barre en question( lesquels sont irrémédiablement éliminés sauf en cas de copie dans une barre d'outils).
Compte tenu de ce que vous me dites, je vois le processus suivant:
1°) creation d'une barre perso
2°) recopie des boutons perso de la barre "officielle" sur la barre perso
3°) remise à zéro de la barre officielle
4°) recopie des boutons perso dans la barre "officielle"
5°) destruction de la barre perso

merci encore de votre aide
 
Re le fil

une autre solution

Option Explicit
Sub test()
Dim ctrl As Object
Dim cdbs As Object
For Each cdbs In Application.CommandBars
For Each ctrl In cdbs.Controls
On Error Resume Next
ctrl.Enabled = True
Err.Clear
Next
Next
End Sub

cette macro rend tous les controles (perso ou systeme) actifs de toutes les barres (perso ou systeme) tester sous 97 et xp

@+Vincent
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
32
Affichages
1 K
Réponses
3
Affichages
731
Réponses
3
Affichages
353
Réponses
12
Affichages
832
Retour