Aller sur un onglet du ruban à la fin de l'exécution de la macro

Bonjour à tous,

J'ai une petite question concernant le ruban.

À chaque fois que j'utilise mes macros, l'onglet change sur Accueil, Insertion, Tableau, etc. et c'est pas très agréable. Est-ce qu'il y aurait une solution VBA pour mener sur un onglet précis du ruban à la fin de l'exécution de la macro? J'ai personnalisé un onglet avec toutes les macros que l'utilisateur peut utiliser et je souhaiterais faire revenir sur celui-ci.

Merci d'avance pour votre aide! :)

Salut,

En utilisant la méthode ActivateTab

    objRibbon.ActivateTab "tab0"

Où objRibbon est ton ruban et "tab0" l'ID de l'onglet attention à la Case
Un autre conseil tester pour voir s'il n'est pas égal a Nothing cela évitera des messages d'erreurs inopportuns.

If Not objRibbon Is Nothing Then objRibbon.ActivateTab "tab0"

Salut Jean-Paul,

Merci pour ta réponse!

J'ai essayé et j'ai une erreur 424 Objet requis. Est-ce que tu sais comment je peux corriger ça? J'ai fait quelques recherches et plusieurs tentatives, mais je ne trouve pas.

Merci d'avance! :)

Salut Manhalo, salut Jean-Paul,

Peut-être que ceci fera l'affaire :

    MultiPage1.Value = 0 'Affiche toujours la page 1 du multipage à l'ouverture

Bonne soirée,

Merci pour la suggestion! :)

Je viens d'essayer mais ça ne fonctionne pas, toujours la même erreur. 😒 Est-ce que je dois l'ajouter au code Jean-Paul?

Salut,

A mon avis t'as pas donné le bon nom à to ruban, ou l'id de l'onglet n'est pas bon
1ère chose à vérifier le nom de l'onglet et la sub de chargement

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="OnRibbonLoad">
    <ribbon startFromScratch="false">
        <tabs>
            <tab id="tab0" label="Facturation" getVisible ="GetVisible">

Ici nous voyons que la sub de lancement au chargement du ruban c'est OnRibbonLoad et que l'Id de l'onglet et "tab0" Pour ma part j'utilise IDBE Ribbon Creator 2021

il va créer un module de Callbacks appelé basCallbacks

image

Dans ce module tu as une Sub de chargement du ruban, celle déterminée dans le fichier Xml onLoad="OnRibbonLoad" pour moi et tu peux voir que j'active l'onglet tab0 celui qui à été déterminé dans le fichier Xml

Public Sub OnRibbonLoad(ribbon As IRibbonUI)
    Set gobjRibbon = ribbon
    gobjRibbon.ActivateTab ("tab0")    ' // Ici j'active l'onglet personnel "Facturation" son id est tab0
End Sub

Il arrive très souvent que le ruban se décharge, il n'apprécie pas beaucoup les points d'arrêt dans le VBE, d'où la vérification avant de lancer l'activation.

If Not objRibbon Is Nothing Then objRibbon.ActivateTab ("tab0")

Bien entendu du dois adapter cette ligne en fonction du nom de ton Objet Ribbon et de l'Id de l'onglet.

Fais nous une copie des sub OnRibbonLoad ou équivalent que je puisse voir.

Petit complément,

Plusieurs façons existent pour accéder à ton fichier Xml, pour ma part j'ai pris l'habitude de travailler directement sur le fichier incorporé.

Donc j'ai mon fichier

image

Je le renomme en .Zip, je confirme l'avertissement. Je l'ouvre..

image

Je double clique sur customUI, et je fais un glisser déposer sur le Bureau.

Maintenant j'ai accès à mon fichier xml. (IDBE Ribbon Creator est limité en version ShareWare à 10 contrôles et 3 Onglets...) une fois les modifications effectuées, nous faisons l'opération inverse, Glisser déposer dans le fichier Zip, on confirme, on ferme le zip, et on renomme en confirmant.

Attention sur le fichier xml les instructions sont sensible à la case.

Alors, je t'avoue que je n'ai pas tout compris. mais malheureusement je ne peux pas utiliser RibbonCreator parce que je suis, et surtout les personnes qui vont l'utiliser, seront sur Mac...

La première idée me semblait simple et pratique mais je ne m'y connais pas trop non plus en VBA.

J'ai essayé :

Sub test()
objRibbon.ActivateTab "tab0"
End Sub

ou

Sub test()
objRibbon.ActivateTab "tab1"
End Sub

ou

Sub Test()
objRibbon.ActivateTab "l'Epicerie" 'nom de mon onglet
End Sub

Et ensuite la même chose avec ça en plus en laissant tab0:

If Not objRibbon Is Nothing Then objRibbon.ActivateTab "tab0"

re,

Déjà comment as-tu créé ton onglet personnalisé ? Si c'est en passant par personnaliser le ruban

image

Là j'avoue que je ne te serais d'aucune aide, car ce n'est pas la méthode que j'utilise. Tu peux néanmoins tester de faire remonter l'onglet en première position. Mais suis pas sur car non testé.

image

Bonsoir,
Ajoute ceci , pour exemple, avant Exit Sub dans tes procédures.
Cdlt.

With Worksheets("Accueil")
        .Activate
        .Cells(1).Select
    End With
Rechercher des sujets similaires à "aller onglet ruban fin execution macro"