Masquer des colonnes en fonction de la date du jour [Résolu/Fermé]

Signaler
Messages postés
23
Date d'inscription
mercredi 11 novembre 2015
Statut
Membre
Dernière intervention
17 août 2016
-
Messages postés
23
Date d'inscription
mercredi 11 novembre 2015
Statut
Membre
Dernière intervention
17 août 2016
-
Bonjour à tous,
j'ai un fichier excel avec tableau qui distingue des trimestres
Ainsi, j'aimerai que, selon la date à laquelle j'ouvre mon fichier, les colonnes qui ne correspondent pas au trimestre en cours soient masquées.
Si je suis au premier trimestre de l'année, les colonnes des trimestre 2 3 et 4 se masquent, et ainsi de suite.
Est ce que quelqu'un pourrai m'aider?
Je l'espere en tout cas...
Merci d'avance!
A.

6 réponses

Messages postés
7373
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
10 mai 2021
635
A mettre dans ThisWorkBook:

Option Explicit
Private Sub Workbook_Open()
Sheets("Feuil1").Select ' a adapter
 Columns("A:L").Select
    Selection.EntireColumn.Hidden = True
Trimestre (Now)
End Sub
Function Trimestre(MyDate As Date) As Integer
 Select Case Month(MyDate)
 Case 1, 2, 3
 Trimestre = 1
 Columns("A:C").Select
  Selection.EntireColumn.Hidden = False
 Case 4, 5, 6
 Trimestre = 2
 Columns("D:F").Select
  Selection.EntireColumn.Hidden = False
 Case 7, 8, 9
 Trimestre = 3
  Columns("G:i").Select
  Selection.EntireColumn.Hidden = False
 Case 10, 11, 12
 Trimestre = 4
  Columns("J:L").Select
  Selection.EntireColumn.Hidden = False
End Select
 End Function


1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
23
Date d'inscription
mercredi 11 novembre 2015
Statut
Membre
Dernière intervention
17 août 2016

c'est parfait!
merci infiniment!!
Messages postés
7373
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
10 mai 2021
635
Bonjour,

En vba. Faire Alt F11 pour accéder à l'éditeur.
Cliquez sur ThisWorkBook en haut à gauche et mettre ce code:

Option Explicit
Dim monmois As String
Private Sub Workbook_Open()
Sheets(Format(Now, "mmmm")).Select 'selection mois en cours
monmois = Format(Now, "mmmm") 'mois en cours
 Dim I As Integer
   For I = 1 To Sheets.Count
      If Sheets(I).Name = monmois Then
    Worksheets(I).Visible = True
     Else
     Worksheets(I).Visible = xlSheetHidden 'on cache les onglets
      End If
   Next I
Trimestre (Now)
End Sub
Function Trimestre(MyDate As Date) As Integer
 Select Case Month(MyDate)
 Case 1, 2, 3
 Trimestre = 1
 Worksheets(1).Visible = True
 Worksheets(2).Visible = True
 Worksheets(3).Visible = True
 Case 4, 5, 6
 Trimestre = 2
  Worksheets(4).Visible = True
 Worksheets(5).Visible = True
 Worksheets(6).Visible = True
 Case 7, 8, 9
 Trimestre = 3
  Worksheets(7).Visible = True
 Worksheets(8).Visible = True
 Worksheets(9).Visible = True
 Case 10, 11, 12
 Trimestre = 4
  Worksheets(10).Visible = True
 Worksheets(11).Visible = True
 Worksheets(12).Visible = True
 End Select
 End Function


Ensuite vous enregistrez classeur avec macro
Messages postés
23
Date d'inscription
mercredi 11 novembre 2015
Statut
Membre
Dernière intervention
17 août 2016

Bonjour,

merci beaucoup pour cette réponse, mais est ce que cela convient bien pour masquer des colonnes? ce ne sont pas des onglets que vous masquez sur ce code?
A.
Messages postés
7373
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
10 mai 2021
635
C'est exact, je me suis planté. Je vois cela pour l'adapter à des colonnes.
Messages postés
7373
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
10 mai 2021
635
Messages postés
23
Date d'inscription
mercredi 11 novembre 2015
Statut
Membre
Dernière intervention
17 août 2016

oui c'est bien cela j'ai besoin de masquer des onglets et des colonnes. j'ai preferé splitter en deux car c'était deux questions distinctes
merci en tout cas!
Messages postés
7373
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
10 mai 2021
635 >
Messages postés
23
Date d'inscription
mercredi 11 novembre 2015
Statut
Membre
Dernière intervention
17 août 2016

pour les onglets, c'est bon?
Je vois cela demain pour les colonnes
Messages postés
23
Date d'inscription
mercredi 11 novembre 2015
Statut
Membre
Dernière intervention
17 août 2016

pour les onglets, ca me dit que l'indice n'appartient pas à la selection. je suis vraiment mauvaise en programmation. je ne comprends pas le debut du programme

Dim monmois As String
Private Sub Workbook_Open()
Sheets(Format(Now, "mmmm")).Select 'selection mois en cours
monmois = Format(Now, "mmmm") 'mois en cours
Dim I As Integer
For I = 1 To Sheets.Count
If Sheets(I).Name = monmois Then
Worksheets(I).Visible = True
Else
Worksheets(I).Visible = xlSheetHidden 'on cache les onglets
End If
Next I

j'ai tres certainement des choses à modifier dans cette partie pour que cela fonctionne avec mon fichier, mais à dire vrai, je ne sais pas quoi...
Messages postés
7373
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
10 mai 2021
635
monmois = Format(Now, "mmmm") 'mois en cours

donne novembre

il faut que les onglets aient le mois écrit en entier!
Messages postés
7373
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
10 mai 2021
635
C'est ce post là qui m'a trompé!
Bonjour
donne un modelé de ton fichier ça sera plus simple pour comprendre
A+
Maurice
Messages postés
23
Date d'inscription
mercredi 11 novembre 2015
Statut
Membre
Dernière intervention
17 août 2016

je ne vois pas comment ajouter mon fichier ici?