Autres [RÉSOLU] Afficher tous les onglets à l'ouverture du fichier

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

un internaute

XLDnaute Impliqué
Bonjour le forum
Auriez-vous en "stock" une macro qui affiche tous les onglets à l'ouverture du fichier et le fait refermer sur l'onglet TOTO (j'ai 12 onglets)
Merci à vous
Cordialement
 
Bonjour
Je ne comprends pas.
Sauf si certains onglets ont volontairement été cachés, ils sont tous naturellement affichés dans la barre d'onglets.
Il va falloir que tu expliques le contexte.
Quant à "refermer" sur un onglet : si tu veux par là dire qu'il doit être celui actif lors de la fermeture du classeur, il suffit d'activer cet onglet avant la fermeture.
 
re un internaute, bonjour le fil, bonjour le forum
effectivement, j'ai du mal à comprendre la demande. à l'ouverture du classeur, en théorie tous les onglets sont visible sauf si une procédure les a cachés.
pour refermer sur un onglet, jmfmarques vous a donné la solution.
une réponse qui pourrait répondre à la problématique

ce code cache tous les onglets, à l'exception de la feuille active
VB:
 ActiveWindow.DisplayWorkbookTabs = False

ce code affiche tous les onglets
Code:
 ActiveWindow.DisplayWorkbookTabs = true
cordialement
galougalou
 
Bonjour à tous 🙂,

Pour le fun car la demande est étrange et j'ai du mal à en voir l'utilité...

Utiliser les évènements Sub Workbook_Open() et Sub Workbook_BeforeClose(Cancel As Boolean) de ThisWorkbook.

VB:
Sub Workbook_Open()
Dim sh
   For Each sh In ThisWorkbook.Sheets: sh.Visible = True: Next sh
End Sub

Sub Workbook_BeforeClose(Cancel As Boolean)
Dim n&, indx&, i&
   n = ThisWorkbook.Sheets.Count: indx = ThisWorkbook.Sheets("Toto").Index
   For i = 1 To indx - 1: ThisWorkbook.Sheets(i).Visible = False: Next
   For i = indx + 1 To n: ThisWorkbook.Sheets(i).Visible = False: Next
End Sub
 
Dernière édition:
Bonjour jmfmarques
Merci merci à vous deux
Je vais "gratter un peu plus
Re,

On ne saura jamais. Le demandeur ayant marqué "Résolu" sa question...


VB:
Option Explicit

Bonjour le forum et à tous ceux qui ont pris le temps de me répondre et je les en remercie

Encore merci à vous tous
Bon WE à tout le forum
Cordialement



Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  Dim LastRow$, firstRow$
  Dim sh As Worksheet
  Application.ScreenUpdating = False
  For Each sh In ThisWorkbook.Worksheets
  If sh.Name <> "TOTO" Then sh.Visible = xlSheetVeryHidden       'Masque toutes les feuilles sauf "TOTO"
    LastRow = sh.Range("A" & Rows.Count).End(xlUp).Row + 1
   sh.Rows(LastRow & ":" & 100).EntireRow.Hidden = True
  Next sh
  Sheets(1).Select
  Application.ScreenUpdating = True
End Sub

Private Sub Workbook_Open()
Dim sh As Worksheet
  Application.ScreenUpdating = False
  For Each sh In ThisWorkbook.Worksheets
  sh.Visible = xlSheetVisible                 ' Afiiche la page "TOTO"
    sh.Unprotect                               s
    sh.Protect UserInterfaceOnly:=True         
    sh.Rows("1:100").Hidden = False
  Next sh
  Sheets(1).Select                           
Range("A1").Select
Application.ScreenUpdating = True
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
145
Réponses
11
Affichages
430
Réponses
19
Affichages
299
Réponses
6
Affichages
164
Réponses
5
Affichages
257
Retour