Masquer des colonnes en fonction de la date du jour

Résolu
pinkbaby91 Messages postés 23 Date d'inscription   Statut Membre Dernière intervention   -  
pinkbaby91 Messages postés 23 Date d'inscription   Statut Membre Dernière intervention   - 13 nov. 2015 à 15:50
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.
A voir également:

6 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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
pinkbaby91 Messages postés 23 Date d'inscription   Statut Membre Dernière intervention  
 
c'est parfait!
merci infiniment!!
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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
0
pinkbaby91 Messages postés 23 Date d'inscription   Statut Membre Dernière intervention  
 
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.
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
C'est exact, je me suis planté. Je vois cela pour l'adapter à des colonnes.
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
0
pinkbaby91 Messages postés 23 Date d'inscription   Statut Membre Dernière intervention  
 
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!
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729 > pinkbaby91 Messages postés 23 Date d'inscription   Statut Membre Dernière intervention  
 
pour les onglets, c'est bon?
Je vois cela demain pour les colonnes
0
pinkbaby91 Messages postés 23 Date d'inscription   Statut Membre Dernière intervention  
 
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...
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
monmois = Format(Now, "mmmm") 'mois en cours

donne novembre

il faut que les onglets aient le mois écrit en entier!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
C'est ce post là qui m'a trompé!
0
Maurice
 
Bonjour
donne un modelé de ton fichier ça sera plus simple pour comprendre
A+
Maurice
0
pinkbaby91 Messages postés 23 Date d'inscription   Statut Membre Dernière intervention  
 
je ne vois pas comment ajouter mon fichier ici?
0