Liste de Navigation entre onglets

Bonjour a tous,

Je suis plutot novice en VBA c'est pour cela que je me tourne vers des gens plus experimentes, je vais essayer d'etre la plus claire possible.

J'ai creer un UserForm me permettant de naviguer entre les onglets de mon classeur excel, seulement mon code permet uniquement d'afficher le nom de mes differentes feuilles dans l'UserForm afin de naviguer parmis elles.

Ce que j'aimerai c'est que mon UserForm me permette toujours de naviguer entre mes onglets mais que sur cette liste je puisse nommer les onglets differement sans avoir a renommer la totalite de mes onglets. J'aimerais en fait que les noms de mes onglets dans l'UserForm puissent etre plus detailles que les noms de mes onglets (hors si je renomme tous me songlets avec les details les onglets seront beaucoup trop long)

Voici le code que j'ai pour le moment:

Sub subShowUserform()

Dim wksSheet As Worksheet

For Each wksSheet In ActiveWorkbook.Worksheets

UFnavigation.LSBnavigation.AddItem wksSheet.Name

Next

UFnavigation.Show

End Sub

J'espere avoir ete assez claire et pas trop brouillon

Je m'excuse d'avance pour le manque des accents mais je suis avec un clavier QWERTY et je n'en connait pas toutes les subtilites haha 1

Merci d'avance a tous ceux qui m'aideront !

Bonjour et bienvenue sur le forum

Tu devrais joindre ton fichier…

Bye !

Bonsoir et bienvenue sur le Forum !

Apprends déjà que le code cité dans un post se met sous balises Code (bouton : </>), c'est la moindre des choses pour ceux qui auront à le lire.

Ensuite, je t'aurais dit au départ qu'un Userform pour naviguer entre onglets est un procédé inutilement lourd, d'autant qu'il faudra que tu puisses lancer ton Userform de tous les onglets... mais si tu veux doubler les noms par d'autres détails susceptibles de guider les choix, cela peut se discuter...

Mais cela n'apparaît pas dans ton code et tu ne fournis aucun fichier modèle , donc on n'est guère avancé sur ce plan. Un fichier avec toutes les informations aiderait à te conseiller.

Une ListBox à deux colonnes, dont tu ne ferais apparaître que la colonne portant les mentions que tu veux afficher, l'autre portant les noms de feuilles et pouvant être masquée... pourrait être une solution.

Mais il faut coder ça un peu plus efficacement que tu ne l'abordes !

Cordialement.

Je vous remercie de vos reponses, j'ai du faire une mauvaise manipulation en joignant mon fichier car je voulais le faire.

Le bouton afin de faire apparaitre le userform est sur le premier onglet, ce fichier n'a pas beaucoup d'onglets mais c'est un fichier test pour d'autre plus importants

Je me rend bien compte que je n'utilise peut etre pas les codes les plus efficaces mais je fais de mon mieux pour apprendre et je suis vraiment novice

En revanche je n'ai pas a relancer mon UserForm depuis tous les onglets, une fois lance depuis le premier il reste affiche et me permet de naviguer sur les autres onglets

Merci encore !

Ce que j'aimerai c'est que mon UserForm me permette toujours de naviguer entre mes onglets mais que sur cette liste je puisse nommer les onglets differement sans avoir a renommer la totalite de mes onglets. J'aimerais en fait que les noms de mes onglets dans l'UserForm puissent etre plus detailles que les noms de mes onglets (hors si je renomme tous me songlets avec les details les onglets seront beaucoup trop long)

Bonjour, Marine, Bonjour aux autres experts ...

superbe réalisation en l'état !! je garde car c'est très utile ...

pour répondre à ton besoin, quelles autres informations souhaites-tu dans l'UserForm et où se trouvent ces informations ?

Bonjour Steelson, merci de ton interet sur le sujet !

Alors voila ce fichier etait un test, je dispose d'un autre fichier pour mon entreprise avec un onglet different pour chaque compte bancaire de l'entreprise, sur l'onglet est uniquement ecrit le numero du compte (par exemple 512145, 472610 etc..), et j'aimerais laisser les noms des onglets comme ceci pour ne pas que ca soit trop long mais que dans mon UserForm s'affiche: 512145 - Compte Bancaire, 472610 - Interco etc...

Ces informations ne se trouvent pour l'instan nulle part, dois-je creer une nouvelle feuille excel avec un tableau de correspondance? Je ne sais vraiment pas comment m'y prendre et je suis bloquee

Merci d'avance

Ces informations ne se trouvent pour l'instan nulle part, dois-je creer une nouvelle feuille excel avec un tableau de correspondance? Je ne sais vraiment pas comment m'y prendre et je suis bloquee

Le plus simple sans doute est de mettre ces informations dans chaque onglet, toujours dans la même cellule (par exemple en en-tête)

Je vais regarder cela cet apm en prenant comme info la cellule A1

Je vais regarder cela cet apm en prenant comme info la cellule A1

Ca serait super ! Merci beaucoup du temps accorde a mon probleme

Voici

Les modifications de code sont les suivantes :

Sub subShowUserform()

Dim wksSheet As Worksheet
For Each wksSheet In ActiveWorkbook.Worksheets
    UFnavigation.LSBnavigation.AddItem wksSheet.Range("A1").Value & " :: " & wksSheet.Name
Next

UFnavigation.Show

End Sub
Private Sub LSBnavigation_Click()

    Sheets(Split(Me.LSBnavigation.List(Me.LSBnavigation.ListIndex), " :: ")(1)).Select

End Sub

Pour compléter ...

afin d'appeler l'userform à partir de n'importe où, tu peux ajouter un raccourci clavier, par exemple Ctrl+z qui n'est pas déjà utilisé par excel

capture d ecran 143

Bonjour,

Salut Steelson

superbe réalisation en l'état !!

Je suis très désolé de ne pas être de l'avis de Steelson cette fois, mais telle n'a pas été mon impression lors de ma première ouverture de ce fichier, hier soir !

D'abord, ouverture sur une erreur d'exécution... ! Ce qui a eu le don de m'irriter car il ne s'agit pas d'une erreur liée à une ouverture à partir du Forum, et qui donc aurait dû être rectifiée sitôt décelée... cependant j'ignore comment la procédure concernée a pu être lancée à l'activation du contenu sans autre intervention de ma part.

De fait rechargeant à nouveau le fichier ce matin, elle ne s'est pas relancée.

Ensuite, la structure du fichier, assez particulière, relativement fermée, ne collait pas vraiment à l'exposé du problème ! Une configuration en couples de feuilles, en nombre prédéfini... ça ne cadrait guère avec le type de dispositif envisagé...

Et passant dans la coulisse , 3 procédures existantes, et déjà 3 modules standard ! Quand ça démarre ainsi, impossible de faire un travail cohérent ! Code non indenté pour l'une, simple enregistrement amorcé pour une autre, code à base de Select et Activate pour la 3e... Sans parler de la propension visible à utiliser des noms longs... bref ! tout un environnement qui ne me motive guère pour travailler !

Puis, ajout d'intention :

En revanche je n'ai pas a relancer mon UserForm depuis tous les onglets, une fois lance depuis le premier il reste affiche et me permet de naviguer sur les autres onglets

Ça, c'est déjà a-priori une mauvaise idée , que le Userform ne soit pas déchargé, d'autant plus si l'initialisation peut éventuellement s'avérer être assez étoffée, est une chose, mais un affichage permanent est toujours encombrant, et obligerait à travailler en non-modal...

Il reste que si le projet vise la réalisation d'un fichier dont les feuilles seront structurées différemment, le nombre sera différent, le contexte d'utilisation et de mise à jour sera également différent... et le présent fichier ne constitue pas une illustration permettant un travail véritablement adapté.

Mais tout cela n'est qu'un avis gratuit, et je laisse donc volontiers la main à Steelson.

Cordialement.

Bonjour

pour lancer le userform = Ctrl+z

Double Click pour aller sur l'onglet

A+

Maurice

Merci mille fois pour ton aide !

J’essaye ça demain au travail sur mon gros fichier, l’astuce du raccourci clavier est super, je n’y aurai pas pensé

Merci encore

Bonjour MFerrand,

Ce qui m'a plu dans ce sujet :

  • l'originalité (pour moi qui jusqu'à présent faisait de la navigation en lien hypertexte dans un onglet dédié)
  • son efficacité (je n'ai pas eu de soucis ... en même temps je me suis épuré le code pour ne retenir que l'essentiel, j'ai donc viré les 2 premiers modules) et le fait qu'il puisse rester ouvert dans un coin du classeur !
  • l'auto-adaptation : pas besoin de tirer des formules, mettre des paramètres, c'est exactement adapté au classeur
  • un code compréhensible (pour moi) et très très court, un code comme je les aime !

Bonjour,

@ Seelson, pour information :

Ctrl+Z

Fait appel à la commande Annuler pour inverser l’action de la dernière commande ou pour supprimer la dernière entrée que vous avez tapée.

Utiliser de préférence Ctrl +J ou Ctrl +M.

Cdlt.

Re Steelson !

J'avais bien compris que tu trouvais un intérêt intrinsèque à intervenir... Moi-même, je trouvais intéressant de voir si on trouvait matière à justifier d'opérer par un Userform plutôt que par d'autres méthodes plus classiques, et quelle valeur ajoutée pouvait apporter un Userform, dans le style : Je ne sais pas où je veux aller mais en évoquant ce que j'espère trouver on va m'emmener exactement là où je veux...

Mais il faut un fichier qui permette ce type d'exploration... et je n'aime pas non plus travailler dans un environnement qui ne me convient pas, sans tout reprendre (mais ça double le travail), ça me gâcherait le plaisir !

Bonne journée.

Bonjour,

@ Seelson, pour information :

Ctrl+Z

Fait appel à la commande Annuler pour inverser l’action de la dernière commande ou pour supprimer la dernière entrée que vous avez tapée.

Utiliser de préférence Ctrl +J ou Ctrl +M.

Cdlt.

ok, merci

Rechercher des sujets similaires à "liste navigation entre onglets"