IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Afficher un onglet personnalisé à l'ouverture [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué Avatar de Le Sage
    Homme Profil pro
    Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Inscrit en
    Novembre 2009
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2009
    Messages : 212
    Points : 171
    Points
    171
    Par défaut Afficher un onglet personnalisé à l'ouverture
    Bonjour à toutes et tous !

    J'ai créé un onglet personnalisé spécifique à un classeur à l'aide de CustomUiEditor.

    Comme indiqué dans le titre, je voudrais que cet onglet s'affiche automatiquement à l'ouverture du classeur, tout en le conservant à la fin du ruban et sans masquer les onglets de base...
    Un truc qui devrait être tout simple, mais que des heures de recherches n'ont pas réussi à résoudre !

    En vous remerciant par avance de vos réponses, bien cordialement,
    Eric.

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Points : 2 502
    Points
    2 502
    Par défaut
    Bonsoir,

    Pour afficher la dernière feuille d'un classeur dès l'ouverture du fichier Excel, il suffit d'ajouter ces quelques lignes dans le code VBA associé
    à la feuille "ThisWorkbook" (<ALT> + <F11> pour afficher l'éditeur VBA)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
        Worksheets(Worksheets.Count).Activate
    End Sub

  3. #3
    Membre habitué Avatar de Le Sage
    Homme Profil pro
    Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Inscrit en
    Novembre 2009
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2009
    Messages : 212
    Points : 171
    Points
    171
    Par défaut
    Bonjour BlueMonkey, et merci pour cette réponse.

    Malheureusement elle est hors sujet

    En le relisant mon premier message, on y trouve :
    J'ai créé un onglet personnalisé spécifique à un classeur à l'aide de CustomUiEditor.

    Comme indiqué dans le titre, je voudrais que cet onglet s'affiche automatiquement à l'ouverture du classeur, tout en le conservant à la fin du ruban et sans masquer les onglets de base...
    Il s'agit donc bien de gérer les onglets du ruban et non les feuilles (qui, notons-le en passant, possèdent des onglets, mais ne sont pas des onglets).

    Je te remercie en tout cas sincèrement d'avoir pris le temps de me répondre !

    Ceci étant, la question reste en suspend, et toute nouvelle réponse ou simple piste de recherche sera la bienvenue !

    Dans l'attente et vous remerciant toutes et tous par avance, cordialement,
    Eric.

  4. #4
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    Lorsque tu as ce classeur ouvert, click sur "Alt" et vois les caractères qui s'affichent sous cet onglet, par exemple M2 pour l'onglet Développeur.

    Ensuite dans le module ThisWorkbook de ce classeur, tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
        Application.OnTime Now + TimeValue("00:00:01"), "Onglet_Perso"
    End Sub
    Et dans un module standard :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Onglet_Perso()
        Application.SendKeys "%M2%" '<-- remplacer M2 par les caractères adéquats
        Application.SendKeys "{Esc}{Esc}"
    End Sub

  5. #5
    Membre habitué Avatar de Le Sage
    Homme Profil pro
    Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Inscrit en
    Novembre 2009
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2009
    Messages : 212
    Points : 171
    Points
    171
    Par défaut
    Bonjour fring, et merci pour cette réponse !

    Pas très catholique, mais ça doit passer ! Je pense que je n'y aurais jamais pensé !

    Je teste dès que possible et je reviens pour clôturer le sujet.

    Ceci étant, je pense qu'on peut d'ores et déjà admettre qu'on ne peut pas tester l'état de l'onglet, et que l'astuce en question risque de provoquer l'effet inverse si pour une raison ou une autre l'onglet en question est à l'état inverse que celui attendu.
    Mais c'est quand même une piste de rattrapage intéressante.

    A bientôt pour les résultats de mes essais !

    Cordialement, Eric

  6. #6
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Citation Envoyé par eric13500 Voir le message
    l'astuce en question risque de provoquer l'effet inverse si pour une raison ou une autre l'onglet en question est à l'état inverse que celui attendu.
    Non puisque on lance cette procédure à l'ouverture du classeur (c'était le but de ta question) et qu'à l'ouverture c'est l'onglet "Accueil" qui est actif.

    Je te l'accorde, c'est une solution un peu brutale mais il faut passer à la version 2010 pour redevenir plus catholique...

  7. #7
    Membre habitué Avatar de Le Sage
    Homme Profil pro
    Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Inscrit en
    Novembre 2009
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2009
    Messages : 212
    Points : 171
    Points
    171
    Par défaut
    Salut fring!

    Désolé pour ma réponse à côté de la plaque !

    Ta solution est tout à fait bonne, c'est moi qui ai confondu deux sujets assez semblables que j'ai postés

    Dans l'autre je cherche à résoudre l'affichage d'un onglet ajouté via .xlam à l'ouverture d'un classeur "Toto" pour que les outils soient dispos dans tout nouveau classeur dès lors que "Toto" est ouvert, et le masquage de cet onglet lors de la fermeture de "Toto"... Tout un poême... toujours pas résolu !

    D'ailleurs, si tu as un idée

    En tout cas merci encore pour cette solution Rock n' Roll mais néanmoins efficace ! (même sous 2010 je n'ai pas trouvé mieux)...

    Je marque le sujet résolu !

  8. #8
    Membre du Club
    Homme Profil pro
    PMO
    Inscrit en
    Août 2015
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : PMO
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2015
    Messages : 66
    Points : 56
    Points
    56
    Par défaut
    Ou alors depuis CustomUiEditor il faut placer ton ruban en première position
    <tab insertBeforeMso="TabHome"

    Bon ok j'arrive après la bataille

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Ruban - Afficher ou masquer un onglet personnalisé
    Par SuzyR dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 12/12/2013, 18h16
  2. [WD-2010] Ouverture d'un onglet personnalisé backstage
    Par Max0o dans le forum VBA Word
    Réponses: 0
    Dernier message: 14/05/2010, 17h27
  3. [AC-2003] Afficher un onglet à l'ouverture d'un formulaire
    Par maringot dans le forum IHM
    Réponses: 4
    Dernier message: 21/04/2010, 14h13
  4. [TPageControl] Comment afficher un onglet spécifique ?
    Par lassmust dans le forum Composants VCL
    Réponses: 4
    Dernier message: 16/11/2005, 14h00
  5. Trouver la position a laquelle afficher un onglet
    Par ThanosT dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 24/05/2005, 14h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo