Masquer des colonnes en fonction de la date du jour

Résolu
pinkbaby91 Messages postés 23 Statut Membre -  
pinkbaby91 Messages postés 23 Statut Membre -
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

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

      donne novembre

      il faut que les onglets aient le mois écrit en entier!
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    C'est ce post là qui m'a trompé!
    0
  7. Maurice
     
    Bonjour
    donne un modelé de ton fichier ça sera plus simple pour comprendre
    A+
    Maurice
    0
    1. pinkbaby91 Messages postés 23 Statut Membre
       
      je ne vois pas comment ajouter mon fichier ici?
      0