Masquage des colonnes hors d’une plage de dates (Microsoft Excel)
Jason a une feuille de calcul qui contient plusieurs colonnes, chacune représentant une semaine fiscale pour son entreprise. Ces semaines fiscales commencent par la colonne G, la colonne H étant la deuxième semaine fiscale, la colonne I la troisième semaine, et ainsi de suite. Jason souhaite créer une macro qui, lorsqu’elle est exécutée, examine la date du jour, calcule la semaine fiscale en fonction de cette date, puis masque toutes les colonnes de la semaine fiscale qui ne se trouvent pas dans une plage spécifiée.
Aux fins de fournir une réponse, je vais supposer que la plage que vous souhaitez afficher sera égale aux 13 semaines (un trimestre)
précédant immédiatement la semaine fiscale en cours. Dans cet esprit, il y a deux ou trois choses qui doivent être faites par la macro. Premièrement, il doit déterminer de quelle semaine financière il s’agit actuellement. Ensuite, il doit masquer toutes les semaines qui ne sont pas dans les 13 semaines précédant cette semaine financière en cours et afficher toutes celles qui le sont.
Tout cela est relativement facile à faire, à l’exception de savoir de quelle semaine fiscale il s’agit actuellement. La méthode de détermination des semaines fiscales peut varier énormément d’une entreprise à l’autre. Pour simplifier, cependant, je vais supposer que la détermination est assez simple: divisez le jour de l’année par sept et voyez ce que nous avons.
La macro suivante met en œuvre l’approche décrite jusqu’à présent.
Sub HideWeeks() Dim BeginYear As Date 'start of fiscal year date Dim FirstWeekCol As Integer 'first fiscal week column Dim FirstShowWkCol As Integer 'first column to show Dim CurrWkCol As Integer 'current week column Dim J As Integer BeginYear = Cells(1, 1).Value FirstWeekCol = 7 'fiscal weeks begin with Col 7 (G) 'Calculate Column of the current fiscal week CurrWkCol = ((Date - BeginYear) \ 7) + FirstWeekCol - 1 'Calculate column of the first week to show FirstShowWkCol = CurrWkCol - 14 If FirstShowWkCol < FirstWeekCol Then FirstShowWkCol = FirstWeekCol End If Application.ScreenUpdating = False 'Unhide all columns Columns("G:IV").Hidden = False 'Unhide all week Columns 'Hide week column before the rolling quarter For J = FirstWeekCol To FirstShowWkCol Columns(J).Hidden = True Next J 'Hide week column after current week For J = CurrWkCol + 1 To 256 Columns(J).Hidden = True Next intCol Application.ScreenUpdating = True End Sub
Notez qu’une valeur doit être extraite de la feuille de calcul dans cette macro: le dernier jour de l’année précédente. Il est supposé qu’il se trouve dans la cellule A1 et qu’il est saisi et placé dans la variable BeginYear. Cette valeur est utilisée pour déterminer le jour de l’année en cours.
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (3261) s’applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:
link: / excelribbon-Hiding_Columns_Not_within_a_Date_Range [Masquage des colonnes hors d’une plage de dates]
.