Ouvrir un fichier Excel sur un onglet déterminé
Bonjour,
Ceci n'est pas un problème excel à proprement parler :
J'ai créé une bibliothèque de documents dans une arborescence.
Au niveau le plus élevé de l'arborescence se trouve un sommaire (sommaire.xlsx ; pas très original mais explicite...)
Chaque onglet de sommaire.xlsx contient la liste des documents enregistrés dans le répertoire de l'arborescence qui porte le même nom que l'onglet avec un lien hypertexte permettant l'ouverture du fichier sélectionné ; jusque là, rien de bien sorcier.
Dans la logique, les utilisateurs devraient accéder à la bibliothèque "par le haut" mais voilà, certains accèdent directement au répertoire qui les intéressent ; plutôt que de les obliger à revenir à la racine pour accéder au sommaire, j'avais envisager de mettre à chaque niveau de la bibliothèque un raccourci vers sommaire.xlsx qui permettrait d'ouvrir le sommaire directement à l'onglet concerné.
Ainsi, un utilisateur qui accèderait au répertoire PLANS disposerait d'un raccourci qui lui ouvrirait directement sommaire.xlsx à l'onglet PLANS, celui qui accèderait au répertoire TARIF disposerait d'un raccourci qui ouvrirait sommaire.xlsx à l'onglet TARIF, etc.
Et là, je sais pas faire... J'ai beau chercher sur internet, je ne trouve rien. Je sais obliger le fichier à s'ouvrir toujours sur un même onglet mais pas sur un onglet différent selon le raccourci utilisé.
Celui qui m'apportera la solution aura la reconnaissance de quelques dizaine d'utilisateurs
Merci d'avance
Tout est indiqué ici :
https://www.excel-pratique.com/fr/vba/evenements_classeur.php
Private Sub Workbook_Open()
' ici activer l'onglet ad-hoc
End Subtu peux aussi fermer avec sélection de l'onglet ad-hoc
Private Sub Workbook_BeforeClose(Cancel As Boolean)
' ici activer l'onglet ad-hoc
End Submais il faudra bien sûr que les macros soient activées !
Le mieux c'est ceci ... car si les macros ne sont pas activées, l'utilisateur ne verra que le sommaire !
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean) 'masque toutes les feuilles avant de fermer
Sheets("Sommaire").Activate
Dim ws As Worksheet
For Each ws In Worksheets
If ws.Name <> "Sommaire" Then ws.Visible = xlVeryHidden
Next
End Sub
Private Sub Workbook_Open() 'démasque les feuilles
Dim ws As Worksheet
For Each ws In Worksheets
If ws.Name <> "Sommaire" Then ws.Visible = True
Next
End Sub