Masquer onglet

Z

Zin

Guest
Bonjour tout le forum !
Je voudrais savoir s'il est possible de masquer un onglet de page de calcul.
Existe t il quelque chose qui permette cela?
Merci à tous
Zin
 
@

@+Thierry

Guest
Bonjour Zin, le Forum

Oui c'est assez simple, il y a plusieurs méthodes :

Manuellement par les menus d'Excel :
Sélectionner la feuille à masquer, aller dans Menu / Format / Feuille => Masquer. (Procédure inverse pour démasquer)

Automatiquement par procédure VBA:
Méthode Simple
Sub Masquer ()
Sheets("TaFeuille").Visible = False
End Sub

Méthode Avancée
Sub MasquerComplètement
Sheets("TaFeuille").Visible = xlSheetVeryHidden
End Sub
NB cette méthode ne rend pas possible la méthode Manuelle par le menu d'Excel pour rendre visible la feuille. Pour annuler le "VeryHidden" seul, un code VBA comme ci-dessous peut le permettre.

Pour Démasquer :
Sub DeMasquer ()
Sheets("TaFeuille").Visible = True

ou encore...
Sub DeMasquerBis ()
Sheets("TaFeuille").Visible = xlSheetVisible
End Sub

Et pour restaurer toutes les feuilles d'un classeur Visibles :
Sub UnHiddingAll ()
Dim WS as WorkSheet
For Each WS In Sheets
WS.Visible = True
Next WS
End Sub


Bon App
@+Thierry
 
B

Bernard

Guest
Bonjour Zin et Coyote

Coyote tu caches toutes les feuilles ou une feuille, peut être que Zin souhaite uniquement cacher la barre d'onglets du bas.

Dans ce cas il lui faut faire OUTILS/OPTIONS/AFFICHAGE et décocher Onglets de classeur.

Cette option a le regrettable avantage de cacher les onglets de toutes les feuilles.

Je ne connais pas la possibilité de cacher uniquement l'onglet du bas d'une feuille quand il y en a plusieurs.

Salut

Bernard
 
B

Bernard

Guest
Bonjour Dan

Je connais bien les manips que donne Coyote. Cependant, je ne connais pas la possibilité, si elle existe, de cacher l'onglet particulier d'une feuille parmi d'autres dans la barre d'onglets du bas.

Salut

Bernard
 
@

@+Thierry

Guest
Bonjour Bernard, Dan, Coyote que j'avais raté, et donc re Zin, le Forum

Donc pour Bernard, je pense qu'en passant par une macro évènementielle à placer dans le Private Module de ThisWorkbook (pas dans un module standard classique)


Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Name = "TheFeuille" Then
ActiveWindow.DisplayWorkbookTabs = False
Else
ActiveWindow.DisplayWorkbookTabs = True
End If
End Sub

Ce devrait faire l'affaire. Quoique ne sachant pas ce que tu cherches à obtenir, dis toi bien que l'on peut facilement naviguer dans les feuilles d'un classeur avec le raccourci clavier CTRL + Page Up / Page Down (les deux flèches en dessous de Pause / Attn)

Bon Aprèm
@+Thierry
 
Z

Zin

Guest
Bonjour à tous.
Tout d'abord je vous remercie tous pour vos conseils,et surtout pour la rapidité avec laquelle vous avez répondus.
La solution de coyotte fait effectivement disparaitre l'onglet et la feuille,mais le probleme c'est que dès que le programme fait appel à cette feuille(car j'en ai néenmoins besoin,elle doit avoir son existence propore)il y à un beug.Le programme semble donc l'ignorer.
Quant à la solution de Bernard,elle cache ,comme il l'a dit,tous les onglets,et ça ne peux pas aller.
En fait,il y a la moitié de la solution....
Merci à tous encore
A+
Zin
 
J

jmt0

Guest
Salut,

Dans ton cas ce que tu peut faire, c'est avoir la feuille de masqué, et de l'affiché a chaque foie que ta macro en a besoin puis la masquer apres.

Point de vu rapidité d'execution, c'est pas le top je sais

jmt0
 
R

Roland

Guest
Bonsoir à tous

N'oubliez pas Application.ScreenUpdating = False
Cela vous permet de demasquer la feuille pour travailler dessus sans qu'elle apparaisse à l'écran .N'oubliez pas de la remasquer avant la fin de macro qui repasse Updating vrai

A+ Roland
 
@

@+Thierry

Guest
=> DEMO UserForm Sheets.Visible True/False + ApplIcation.ScreenUpdating

Bonjour le Fil, le Forum

Pour Application.ScreenUpdating = False, cette instruction peut être utilisée casiment depuis n'importe quel module à condition, bien évidemment, qu'elle "encadre" le code qui est concerné.


Par exemple :

Sub Toto()
Dim WS As Worksheet
Dim i As Byte

Application.ScreenUpdating = False
For Each WS In Sheets
For i = 1 To 100
WS.Range("A" & i) = "Hello Zin"
Next i
Next WS
Application.ScreenUpdating = True
End Sub


Mais vu, qu'il a été dit beaucoup de choses dans ce fil, je pense que le plus simple est de faire une démo récapitulative par UserForm car j'ai un peu l'impression que c'est parti dans tous les sens (lol), comme çà ce sera un fil complet pour toutes ces questions.

Bon App
@+Thierry
 

Pièces jointes

  • USF-Cache-Chache-Sheets.zip
    27.4 KB · Affichages: 94

Discussions similaires

Réponses
6
Affichages
384

Statistiques des forums

Discussions
313 137
Messages
2 095 626
Membres
106 308
dernier inscrit
F.DIAS