Ruban personnalisé ! custom ui editor ou UserForm

Gabriel.leroux82

XLDnaute Nouveau
Bonjour,

J'aimerais créer un nouvel onglet avec de nouveaux groupes pour permettre d'afficher mes commandes (sous forme de macros), le problème est que cet onglet apparait seulement sur ma session à moi, le document est accessible par plusieurs personnes qui ne n'ont pas cet nouvel onglet,

Est-ce c'est la limite et le but ou y'a t'il un autre moyen à faire pour que le nouveau ruban soit affiché pour tous les utilisateurs ? (c'est un seul fichier qui n'est pas en mode partage car cela crée des conflits avec les macros mais il est accessible par plusieurs personnes)

Merci d'avance
Gab
 

Gabriel.leroux82

XLDnaute Nouveau
J'ai fait une recherche et ça à l'aire tellement compliqué mon affaire :( , j'ai a peu près 15 commande macro à inclure dans un nouveau ruban personnalisé et il faut que j'installe un utilitaire, et créer des codes VBA que je ne les maitrise pas bien.
Avez-vous d'autres suggestions efficaces et moins compliquées ?
Merci à vous
 

Gabriel.leroux82

XLDnaute Nouveau
Bonjour,
Pourriez-vous svp m'aider ? je vous ai fait un fichier avec une seule macro à mettre dans un ruban personnalisé, juste un test, le mien contient une vingtaine et plusieurs fonctions et messbox conditionnel, merci infiniment
 

Pièces jointes

  • test.xlsm
    16.2 KB · Affichages: 21

Dranreb

XLDnaute Barbatruc
Moi ce que je vous proposais c'était d'abandonner l'idée du ruban personnalisé. De faire Insertion, UserForm puis de commencer, dans la fenêtre de propriétés, par mettre sa propriété ShowModal à False. Ajouter des CommandButton pour les différentes actions à faire, enfin ajouter des procédures dans ThisWorkbook pour assurer son affichage à l'ouverture de classeur ou dans d'autres circonstances. Lorqu'un UserForm est affiché en non modal, il ne gêne plus les manœuvres dans Excel.
 

patricktoulon

XLDnaute Barbatruc
bonjour
avant de parler ruban et de la modification xml avec customui editor ,en tant que debutant
je démarrerais avec commandbars
c'est moins fun moins d'option mais déjà ça te permet de mettre tes boutons dans le ruban

car les commandbars top atterrissent depuis 2007 dans un onglet compléments du ruban
et le code est relativement accessible même au débutant

customui editor il faut déjà avoir une connaissance du xml la moindre erreur et c'est le crash

donc voici un exemple avec commandbar
tu peux te faire des menus
quand tu sera capable de construire ta propre commandbars en vba tu pourra alors t’attaquer au xml
 

Pièces jointes

  • commandbarperso dans ruban.xls
    40.5 KB · Affichages: 70

jeanmi

XLDnaute Occasionnel
bonjour
avant de parler ruban et de la modification xml avec customui editor ,en tant que debutant
je démarrerais avec commandbars
c'est moins fun moins d'option mais déjà ça te permet de mettre tes boutons dans le ruban

car les commandbars top atterrissent depuis 2007 dans un onglet compléments du ruban
et le code est relativement accessible même au débutant

customui editor il faut déjà avoir une connaissance du xml la moindre erreur et c'est le crash

donc voici un exemple avec commandbar
tu peux te faire des menus
quand tu sera capable de construire ta propre commandbars en vba tu pourra alors t’attaquer au xml
Bonjour @patricktoulon, bonjour à tous,

J’été à la recherche d’une solution comme celle que tu proposes, et qui fonctionne très bien.

J’aurai des questions si tu as le temps d’y répondre :

1-A la création de la nouvelle commande elle est nommée « compléments » dans le ruban, pourquoi ? Est-il possible de lui donner un autre nom ? Est-il possible de positionner cette nouvelle commande à la fin des autres ?

2-Comment trouver le numéro de l’icône à mettre en place ?

3- Faut-il mettre la macro dans cette commande : bout.OnAction = "nom de la macro ?" sous la forme comme ci-contre ?

4- il y a trois petits « ! en bleu », pas d’affichage, à la fin des menus, ils semblent correspondre aux trois derniers codes « Set bout = .Controls.Add », peux-tu me donner une petite explication sur l’utilisation et pourquoi pas d’affichage ?

5- que faut-il faire pour avoir l’exécution à l’ouverture du fichier et la suppression à la fermeture.

Je joins un fichier préparé pour mon utilisation

Merci d’avance pour les réponses.

Cordialement
 

Pièces jointes

  • commandbarperso dans ruban-V2.xls
    55 KB · Affichages: 9

patricktoulon

XLDnaute Barbatruc
re
1° non le nom "Complément" c'est pas modifiable

2° la liste des iconnes tu la trouvera facilement ou tu peux meme te la faire toi meme

3° oui la macro a déclencher doit être dans le onaction ex: .onaction="mamacro1"

4° les points d'interrogation sont un des iconnes parmi plein d'autres c'est tout

pour la question 2° la liste des icone voici une petite macro pour te faire la liste
VB:
Sub list()
    Dim tablo
    ReDim tablo(1 To Rows.Count, 1 To 3)
    i = 1
    [A1:c1] = Array("barre", "control", "numero d'iconnes")
    For Each cmb In Application.CommandBars
        On Error Resume Next
        For Each ctrl In cmb.Controls
        i = i + 1
            Cells(i, 1) = cmb.Name
            Cells(i, 2) = ctrl.Caption
             Cells(i, 3) = ctrl.ID
          Err.Clear
        Next
    Next
[A:C].Columns.AutoFit
End Sub
voila tu es paré pour débuter dans la personnalisation des commandbars
;)
 

jeanmi

XLDnaute Occasionnel
re
1° non le nom "Complément" c'est pas modifiable

2° la liste des iconnes tu la trouvera facilement ou tu peux meme te la faire toi meme

3° oui la macro a déclencher doit être dans le onaction ex: .onaction="mamacro1"

4° les points d'interrogation sont un des iconnes parmi plein d'autres c'est tout

pour la question 2° la liste des icone voici une petite macro pour te faire la liste
VB:
Sub list()
    Dim tablo
    ReDim tablo(1 To Rows.Count, 1 To 3)
    i = 1
    [A1:c1] = Array("barre", "control", "numero d'iconnes")
    For Each cmb In Application.CommandBars
        On Error Resume Next
        For Each ctrl In cmb.Controls
        i = i + 1
            Cells(i, 1) = cmb.Name
            Cells(i, 2) = ctrl.Caption
             Cells(i, 3) = ctrl.ID
          Err.Clear
        Next
    Next
[A:C].Columns.AutoFit
End Sub
voila tu es paré pour débuter dans la personnalisation des commandbars
;)
re

Merci pour les réponses, et la petite macro, super sympathique.

Ma question 2 était plus sur, comment savoir le dessin du pictogramme en fonction du code

et la question 5

Une idée, peut-être farfelue, mais je la pose

Est-il possible d’activer la « commandbars » uniquement en fonction du pc sur lequel le fichier est ouvert ???
donc je peux voir les nouvelles commandes et une autre personne qui n'est pas sur mon ordinateur ne peux pas la voir les commandes, sauf si elle est aussi autorisé ?

cordialement
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
pour la liste tu a les caption des boutons en colonne B et en C le ID de l'icon
pour activer la commandbars sur un pc et pas l'autre c'est du VBA classique
fait une recherche sur la fonction environ

et pour tes icons voici la meme avec les icon en visuel
attention c'est un peu plus long que sans les icons
VB:
Sub list()
    Dim tablo
    ReDim tablo(1 To Rows.Count, 1 To 3)
    i = 1
   For Each shap In ActiveSheet.Shapes: shap.Delete: Next
    [A1:c1] = Array("barre", "control", "numero d'iconnes")
    For Each cmb In Application.CommandBars
        On Error Resume Next
        For Each ctrl In cmb.Controls
            i = i + 1
          ctrl.CopyFace: ActiveSheet.Paste
          Cells(i, 1) = cmb.Name
            Cells(i, 2) = ctrl.Caption
            Cells(i, 3) = ctrl.ID
             If ActiveSheet.Shapes.Count > 0 Then With ActiveSheet.Shapes(ActiveSheet.Shapes.Count): .Width = Cells(i, 3).Height: .haight = Cells(i, 3).Height: .Left = Cells(i, 3).Left: .Top = Cells(i, 3).Top: End With
        Err.Clear
    Next
Next
[A:C].Columns.AutoFit
End Sub
peux pas mieux faire tu a tout ce qu'il te faut ;)
 

jeanmi

XLDnaute Occasionnel
pour la liste tu a les caption des boutons en colonne B et en C le ID de l'icon
pour activer la commandbars sur un pc et pas l'autre c'est du VBA classique
fait une recherche sur la fonction environ

et pour tes icons voici la meme avec les icon en visuel
attention c'est un peu plus long que sans les icons
VB:
Sub list()
    Dim tablo
    ReDim tablo(1 To Rows.Count, 1 To 3)
    i = 1
   For Each shap In ActiveSheet.Shapes: shap.Delete: Next
    [A1:c1] = Array("barre", "control", "numero d'iconnes")
    For Each cmb In Application.CommandBars
        On Error Resume Next
        For Each ctrl In cmb.Controls
            i = i + 1
          ctrl.CopyFace: ActiveSheet.Paste
          Cells(i, 1) = cmb.Name
            Cells(i, 2) = ctrl.Caption
            Cells(i, 3) = ctrl.ID
             If ActiveSheet.Shapes.Count > 0 Then With ActiveSheet.Shapes(ActiveSheet.Shapes.Count): .Width = Cells(i, 3).Height: .haight = Cells(i, 3).Height: .Left = Cells(i, 3).Left: .Top = Cells(i, 3).Top: End With
        Err.Clear
    Next
Next
[A:C].Columns.AutoFit
End Sub
peux pas mieux faire tu a tout ce qu'il te faut ;)
re,

merci encore, ça marche très bien au début, mais le code de la macro est copier sur la feuille et là plus rien , fichier bloqué !!!

cordialement
 

Discussions similaires

Réponses
0
Affichages
500

Statistiques des forums

Discussions
312 203
Messages
2 086 196
Membres
103 153
dernier inscrit
SamirN