Microsoft 365 limiter les onglets excel

realiste75

XLDnaute Nouveau
Bonjour à tous

je souhaite limiter a 5 onglets mon fichier excel , je m'explique, je souhaite que lorsque je rajoute des onglets le plus vieux onglet se masque automatiquement pour ne garder que 5 et ainsi de suite . en gros un onglet rajouté = le plus vieux onglet masqué.

merci a vous
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Dans le fichier ci-joint vous trouverez une macro évènementielle, qui répond partiellement à votre demande :
les feuilles dans excel sont indexées de 1 à n mais la feuille n°1 dans la collection des feuilles, celle qui apparaît tout à gauche, n'est pas nécessairement la plus ancienne. Comment identifier la plus ancienne ?

La macro ne supprime que si la nouvelle feuille est une feuille de travail, pas les feuilles graphiques ou macroxl4 etc.

Cordialement
 

Pièces jointes

  • 5_Feuilles.xlsm
    23.7 KB · Affichages: 5
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour à tous,

Voyez le fichier joint et ces 2 macros dans ThisWorkbook :
VB:
Private Sub Workbook_NewSheet(ByVal Sh As Object)
Sh.Move After:=Sheets(Sheets.Count) 'la feuille est déplacée en dernière position
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim n%, i%
n = Sheets.Count
For i = 1 To n
    Sheets(i).Visible = i > n - 5 'les 5 dernières feuilles restent visibles
Next
End Sub
A+
 

Pièces jointes

  • 5 feuilles visibles(1).xlsm
    20.4 KB · Affichages: 2

Alain_bubu

XLDnaute Nouveau
Pour trouver le plus ancien, il suffit peut être d'empêcher le déplacement des onglets et donc toujour cache la feuille 1 si possible
Sinon aller lire une cellule quelque part sur la feuille avec un date de création et cacher avec cette date là plus ancien
 

realiste75

XLDnaute Nouveau
Bonjour à tous,

Voyez le fichier joint et ces 2 macros dans ThisWorkbook :
VB:
Private Sub Workbook_NewSheet(ByVal Sh As Object)
Sh.Move After:=Sheets(Sheets.Count) 'la feuille est déplacée en dernière position
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim n%, i%
n = Sheets.Count
For i = 1 To n
    Sheets(i).Visible = i > n - 5 'les 5 dernières feuilles restent visibles
Next
End Sub
A+
 

realiste75

XLDnaute Nouveau
Merci beaucoup a tous cela répond exactement a ma demande , cependant j'ai oublié de précisé une chose à savoir j'ai une feuille "Modèle" que je duplique par macro et si elle est masqué et bien la duplication se masque aussi. Donc je souhaite soit revoir la macro pour laisser la feuille "Modèle" affichée tout le temps, soit une autre macro que laisse cet onglet affiché malgré tout.

merci à vous
 

M12

XLDnaute Accro
Merci beaucoup a tous cela répond exactement a ma demande , cependant j'ai oublié de précisé une chose à savoir j'ai une feuille "Modèle" que je duplique par macro et si elle est masqué et bien la duplication se masque aussi. Donc je souhaite soit revoir la macro pour laisser la feuille "Modèle" affichée tout le temps, soit une autre macro que laisse cet onglet affiché malgré tout.

merci à vous
Et c'est maintenant que tu annonce celà :oops:
et ensuite, les nouvelles instructions, c'est quoi ?
Pour un "Réaliste" !!
Je passe
 

realiste75

XLDnaute Nouveau
Et c'est maintenant que tu annonce celà :oops:
et ensuite, les nouvelles instructions, c'est quoi ?
Pour un "Réaliste" !!
Je passe
Bonjour Cher ami
tout simplement que j'avais oublié ce détail et que je ne me suis pas connecté depuis car je n'étais pas chez moi. maintenant un forum est fondé sur de l'aide et non sur des jugements. Merci de quand même d'avoir pris le temps de me lire.

Bien à vous.
 

job75

XLDnaute Barbatruc
Bonsoir chers amis,

S'il faut laisser la feuille "Modèle toujours affichée, le code du ThisWorkbooK :
VB:
Private Sub Workbook_NewSheet(ByVal Sh As Object)
Sh.Move After:=Sheets(Sheets.Count) 'la feuille est déplacée en dernière position
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim n%, i%
n = Sheets.Count
For i = 1 To n
    Sheets(i).Visible = Sheets(i).Name = "Modèle" Or i > n - 5 'les 5 dernières feuilles restent visibles
Next
End Sub
Code:
Il peut donc y avoir 6 feuilles affichées.

A+
 

Eric C

XLDnaute Barbatruc
Bonsoir le forum,
Bonsoir realiste75, Hasco, M12, job75, Alain_bubu
Mon coup de gueule du jour ...
Dans un premier temps, sur ce forum, il y a très peu d'ami(e)s car les intervenant(e)s sont "éclaté(e)s" aux quatre coins de la France et ne se connaissent pas forcément et depuis le départ de notre amie Brigitte (Bisous) qui a quitté les lieux, aucune rencontre physique n'a renforcé les liens que les anciens entretenaient. Pouvoir profiter de ses temps libres est devenue une nécessité très légitime et de l'aide à ta problématique a été apportée. Tu es nouveau sur le forum …. 2019 ??? - A ton actif : que des demandes et aucune solution contributive apportée ??? Ne prend pas la peine de me répondre, c'était mon coup de gueule du jour...
Bonne nuit à toutes & à tous
@+ Eric
 

realiste75

XLDnaute Nouveau
Bonsoir le forum,
Bonsoir realiste75, Hasco, M12, job75, Alain_bubu
Mon coup de gueule du jour ...
Dans un premier temps, sur ce forum, il y a très peu d'ami(e)s car les intervenant(e)s sont "éclaté(e)s" aux quatre coins de la France et ne se connaissent pas forcément et depuis le départ de notre amie Brigitte (Bisous) qui a quitté les lieux, aucune rencontre physique n'a renforcé les liens que les anciens entretenaient. Pouvoir profiter de ses temps libres est devenue une nécessité très légitime et de l'aide à ta problématique a été apportée. Tu es nouveau sur le forum …. 2019 ??? - A ton actif : que des demandes et aucune solution contributive apportée ??? Ne prend pas la peine de me répondre, c'était mon coup de gueule du jour...
Bonne nuit à toutes & à tous
@+ Eric
Bonjour,

Merci à tous pour vos réponses.

@ Eric, je respecte votre réaction. Bonne journée.
 

Discussions similaires

Statistiques des forums

Discussions
312 158
Messages
2 085 831
Membres
102 996
dernier inscrit
Zabouille73