Personnalistion du ruban

  • Initiateur de la discussion Initiateur de la discussion milouseba
  • 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 !

M

milouseba

Guest
Bonjour a tous,

J'ai crée sous Excel 2010 un onglet personnalisé nomme MyP dans lequel j'ai mis des boutons liées à des macros.

Par du code xml j'arrive à modifier l'affichage des onglets standard de excel. Cependant, je voudrais pouvoir gérer de la meme facon l'affichage de mon onglet personnalise "MyP" prédéfini et je n'y arrive pas.

Quelqu'un pourrait il m'aider?

Je vous remercie!
 
Re : Personnalistion du ruban

Re,

Que veux-tu faire exactement ?

Ci-dessous un exemple avec un menu personalisé :
- Il faut créer un fichier Excel en xlsm.
- Fermer ce fichier.
- Ouvrir "Custom UI Editor For Microsoft Office".
- Dans ce programme, il faut ouvrir le fichier Excel.
- Copier ensuite le code ci-dessous.

HTML:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="ChargerRuban">
   <ribbon startFromScratch="false">  <!--Si =true alors cache les menus Excel-->
      
	<tabs>
        <tab id="Imp01" label="Menu personalisé" >
            <group id="Imp11" label="Imprimante">
			<button id="Imp21" label="Epson" imageMso="PrintOptionsMenu" size="large" onAction="Epson" />
		</group>
		<group id="Imp12" label="Mail">
	      	<button id="Imp22" label="Envoi" imageMso="MarkAsUnread" size="large" onAction="Envoi" />
            </group>   

            <group id="Cel01" label="Cellules">
	      	<button id="Cel11" label="Largeur" image="LARGEUR" size="large" onAction="ColonnesEnCm" />
			<button id="Cel12" label="Hauteur" image="HAUTEUR" size="large" onAction="LignesEnCm" />
			<button id="Cel13" label="Carré" image="CARRE1" size="large" onAction="CelluleCarree" />
		</group>

	  </tab>
      </tabs>
   </ribbon>
</customUI>

- Faire enregistrer puis fermer ce programme.
- Ouvrir le fichier xslm dans Excel.
- Ouvrir VBA (Alt + F11)
- Créer un module puis y coller les macros ci-dessous.

VB:
'Callback for Cel13 onAction
Sub CelluleCarree(control As IRibbonControl)
  Dim Cellule As Range
  For Each Cellule In Selection
    Cellule.RowHeight = Cellule.Width
  Next
End Sub
'Callback for Cel12 onAction
Sub LignesEnCm(control As IRibbonControl)
  Dim cm As Single
  cm = Application.InputBox("Hauteur de la rangée en cm.", Type:=1)
  If cm Then
    Selection.RowHeight = Application.CentimetersToPoints(cm)
  End If
End Sub
'Callback for Cel11 onAction
Sub ColonnesEnCm(control As IRibbonControl)
  Dim cm As Single, points As Single
  Dim count As Single
  Application.ScreenUpdating = False
  cm = Application.InputBox("Largeur de la colonne en cm.", Type:=1)
  If cm = False Then Exit Sub
    points = Application.CentimetersToPoints(cm)
    savewidth = ActiveCell.ColumnWidth
    ActiveCell.ColumnWidth = 255
    If points > ActiveCell.Width Then
      MsgBox "La largeur de" & cm & "est trop large" & Chr(10) & _
              "la valeur maxi est de " & _
              Format(ActiveCell.Width / 28.3464566929134, _
              "0.00"), vbOKOnly + vbExclamation, "Largeur non valable"
      ActiveCell.ColumnWidth = savewidth
      Exit Sub
    End If
    lowerwidth = 0
    upwidth = 255
    ActiveCell.ColumnWidth = 127.5
    curwidth = ActiveCell.ColumnWidth
    count = 0
    While (ActiveCell.Width <> points) And (count < 20)
      If ActiveCell.Width < points Then
        lowerwidth = curwidth
        Selection.ColumnWidth = (curwidth + upwidth) / 2
      Else
        upwidth = curwidth
        Selection.ColumnWidth = (curwidth + lowerwidth) / 2
      End If
      curwidth = ActiveCell.ColumnWidth
      count = count + 1
    Wend
End Sub
Sub Epson(control As IRibbonControl)
  On Error Resume Next
    Application.ActivePrinter = "EPSON Stylus DX9400F Series sur Ne03:"
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
        "EPSON Stylus DX9400F Series sur Ne03:", Collate:=True
  On Error GoTo 0
End Sub
Sub Envoi(control As IRibbonControl)
MsgBox "Ouverture de Outlook"
End Sub

- Enregistre le fichier
- Ferme-le puis rouvre-le. Normalement tu as ton menu personnalisé dans ton ruban.

Vois avec le fichier ci-joint, tout est dedans

A te relire

Martial
 

Pièces jointes

Re : Personnalistion du ruban

Bonsoir Yaloo,
Merci encore pour ton aide.
Je suis chez moi et malheureusement je n'ai pas accès à mes fichiers qui sont à mon bureau.(Si necessaire je les enverrai demain).
En attendant, je vais essayer d'etre plus clair. J'ai un fichier excel dans lequel j'ai créé un grand nombre de macro que j'utilise souvent.
Plutot que de créer des boutons dans mes feuilles excel qui lance les macros j'ai créé via excel un nouvel onglet dans mon ruban et j'ai mis des commandes qui lance les macros (Tout cela pour des raisons esthétiques).
Maintenant je souhaiterai, lors de l'ouverture de mon fichier et uniquement de ce fichier, faire disparaitre certains onglets du ruban (exemple: developer et format) et afficher les autres plus mon onglet perso avec mes macros.
J'arrive bien a afficher ou masquer les onglets standards hors je n'arrive pas à manipuler par le code mon onglet perso.
En suivant ta methode je peux reconstruire cet onglet perso par le code html et assigner des commandes à mes macros, hors j'ai deja fait tout cela manuellement dans excel. N'est il pas possible de réafficher directement tout mon onglet perso plutôt que de le refaire via html.
Comprends tu ce que je veux dire?
 
Re : Personnalistion du ruban

Re,

J'arrive bien a afficher ou masquer les onglets standards hors je n'arrive pas à manipuler par le code mon onglet perso.

Comprends tu ce que je veux dire?

Il me semble que oui 🙄

"Manipuler" c'est que tu veux changer ou modifier des éléments de ton onglet perso ?

Là je ne sais pas si c'est possible. Je sais le faire avec Custom ... mais directment dans Excel ....

A+
 
Re : Personnalistion du ruban

Bonjour milouseba, le forum,

J'ai pas mal cherché mais n'ai rien trouvé la dessus.

Le problème, c'est que l'on a pas l'id de l'élément des menus personalisés.

Peut être que quelqu'un aura une réponse pour toi.

A+

Martial
 
- 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

F
  • Question Question
Réponses
9
Affichages
8 K
S
D
Réponses
0
Affichages
954
dom29
D
J
Réponses
4
Affichages
972
J
T
Réponses
9
Affichages
2 K
M
Réponses
0
Affichages
533
murbella
M
H
Réponses
6
Affichages
4 K
Helios67
H
S
Réponses
9
Affichages
2 K
S
M
Réponses
0
Affichages
2 K
mohamed driss
M
Retour