web-dev-qa-db-fra.com

Excel Masquer/Afficher tous les onglets du ruban sauf les onglets personnalisés

Comment puis-je masquer et afficher tous les onglets de ruban Excel standard à l'aide de VBA (et non de XML). Je ne veux pas cacher tout le ruban (comme on le demande ici: VBA minimiser le ruban dans Excel ) uniquement les onglets. Je sais comment utiliser startFromScratch en utilisant XML, veuillez donc ne pas suggérer cela ni d'autres solutions XML. 

Jusqu'à présent, j'ai effectué une recherche approfondie sur Google et examiné:

Ce que je dis, c'est que j'ai déjà fait une recherche approfondie et essayé beaucoup de choses sans obtenir de résultat.

10
Brett

Comment masquer et afficher tous les onglets de ruban Excel standard à l'aide de VBA (et non de XML)

La réponse est " VOUS NE POUVEZ PAS ". 

Autant que je sache, vous ne pouvez pas faire cela en utilisant VBA. Malheureusement, VBA n'expose pas les onglets. Les seules options que vous avez sont comme indiqué dans l'image ci-dessous

enter image description here

Donc, vous pouvez travailler avec la barre de commande, commandbarButton, commandbarComboBox etc ...

Vous pouvez dire que Set cbar = Application.CommandBars("Ribbon") mais après cela, le problème que vous allez rencontrer est de savoir comment obtenir une poignée pour les onglets.

Ce que vous pouvez faire avec le ruban sous VBA:

  • Déterminer si un contrôle particulier est activé/visible/activé (Toggleboxes/CheckBoxes) 
  • Obtenir l'étiquette d'un contrôle, une info-bulle ou un supertip Affiche l'image associée à un contrôle . 
  • Exécuter un contrôle particulier.

Ce que vous ne pouvez pas faire avec le ruban avec VBA:

  • Déterminez quel onglet est actuellement sélectionné.
  • Activer un onglet particulier.
  • Masquer un onglet particulier
  • Ajouter un nouvel onglet.
  • Ajouter un nouveau groupe à un onglet.
  • Ajouter un nouveau contrôle.
  • Supprimer/Désactiver/Masquer un contrôle.

Vous pouvez cependant utiliser XML pour réaliser ce que vous voulez. Par exemple

<customUI xmlns="http://schemas.Microsoft.com/office/2006/01/customui">
    <ribbon>
        <tabs>
            <tab idMso="TabReview" visible="false" />
        </tabs>
    </ribbon>
</customUI>

Mais je suppose que vous ne voulez pas utiliser la route XML.

11
Siddharth Rout

Vous pouvez en effet masquer/afficher des rubans à l’aide de VBA. Voici un exemple:

<ribbon startFromScratch="false">
  <tabs>
  <!-- Excel BUILT-IN TABS -->
    <tab idMso="TabDeveloper" getVisible="GetVisible">
	  <group idMso="GroupCode" visible="true"/>
	  <group idMso="GroupAddins" visible="true"/>
	  <group idMso="GroupControls" visible="true"/>
	  <group idMso="GroupXml" visible="true"/>
	  <group idMso="GroupModify" visible="true"/>
	</tab>
  </tabs>
</ribbon>

  1. Configurez votre fichier XML.

  2. Configurez votre script VBA. Sub GetVisible(control As IRibbonControl, ByRef MakeVisible) Select Case control.ID Case "TabDeveloper": MakeVisible = True Case "TabHome": MakeVisible = True Case "TabInsert": MakeVisible = True Case "TabPageLayoutExcel": MakeVisible = True Case "TabFormulas": MakeVisible = True Case "TabData": MakeVisible = True Case "TabReview": MakeVisible = True Case "TabView": MakeVisible = True Case "TabAddIns": MakeVisible = True Case "TabBackgroundRemoval": MakeVisible = True End Sub

  3. Téléchargez ce fichier pour obtenir une liste des ID de contrôle pour MS Office. http://www.Microsoft.com/en-us/download/details.aspx?displaylang=fr&id=6627

Conseil: assurez-vous de fermer votre classeur Excel contenant le ruban que vous modifiez avant de modifier le fichier de ruban XML. J'ai constaté que cela efface parfois mon code VBA (je ne sais pas pourquoi, c'est le cas).

4
user6620568

Activer un onglet particulier

Dans Microsoft Office 2010, vous activez un onglet personnalisé à l'aide de la méthode ActivateTab de l'objet IRibbonUI. 

Vous utilisez la méthode ActivateTabMso Pour les onglets intégrés et ActivateTabQ pour les onglets partagés entre plusieurs additifs . 

ActivateTabQ nécessite également un paramètre supplémentaire de type String qui spécifie l'espace de nom du complément.

En XML, spécifiez 

customUI onLoad="RibbonOnLoad" xmlns=etc

En VBA

Public gRibbonUI As IRibbonUI 

Sub RibbonOnLoad(ribbon As IRibbonUI)

   Set gRibbonUI = ribbon

End Sub

Puis en code

gRibbonUI.ActivateTab "MyTabID"

gRibbonUI.ActivateTabMso "TabHome"
4
sysmod

Tout d’abord, ouvrez la feuille Excel sur laquelle vous souhaitez masquer l’onglet du ruban, puis appuyez sur Alt+F11. Insérer un nouveau module de code et ajouter le code suivant:

Private Sub hide()
    Application.ExecuteExcel4Macro "Show.ToolBar(""Ribbon"",False)
End sub
3
Seshadri

Vous pouvez utiliser sur le XML comme ceci:

<ruban startFromScratch = "true">

vérifier ce lien:

http://www.rondebruin.nl/win/s2/win012.htm

1
Evert

Essayez ce XML pour Excel que j'ai testé:

<customUI xmlns="http://schemas.Microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
<tabs>
    <tab idMso="TabHome" visible="false" />
    <tab idMso="TabInsert" visible="false" />
    <tab idMso="TabFormulas" visible="false" />
    <tab idMso="TabData" visible="false" />
    <tab idMso="TabReview" visible="false" />
    <tab idMso="TabView" visible="false" />
    <tab idMso="TabDeveloper" visible="false" />
</tabs>
</ribbon>
</customUI>

 XML Code

Résultat:
 ExcelApp

0
PatricK