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

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
 

jmfmarques

XLDnaute Accro
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.
 

GALOUGALOU

XLDnaute Accro
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
 

mapomme

XLDnaute Barbatruc
Supporter XLD
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:

un internaute

XLDnaute Impliqué
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
 

Discussions similaires