Nascondere colonne non comprese in un intervallo di date (Microsoft Excel)
Jason ha un foglio di lavoro che contiene diverse colonne, ognuna delle quali rappresenta una settimana fiscale per la sua azienda. Queste settimane fiscali iniziano con la colonna G, dove la colonna H è la seconda settimana fiscale, la colonna I la terza settimana e così via. Jason vorrebbe creare una macro che, una volta eseguita, guardi alla data odierna, calcoli la settimana fiscale in base a quella data e quindi nasconda le colonne della settimana fiscale che non rientrano in un intervallo specificato.
Allo scopo di fornire una risposta, presumo che l’intervallo che si desidera visualizzare sarà pari a 13 settimane (un trimestre)
immediatamente precedente la settimana fiscale in corso. Con questo in mente, ci sono un paio di cose che devono essere fatte dalla macro. Innanzitutto, deve determinare quale settimana fiscale è attualmente. Quindi, deve nascondere tutte le settimane non nelle 13 settimane precedenti questa settimana fiscale corrente e mostrare tutte quelle che lo sono.
Tutto questo è relativamente facile da fare, con l’eccezione di capire quale settimana fiscale è attualmente. Il metodo per determinare le settimane fiscali può variare notevolmente da azienda a azienda. Per semplicità, tuttavia, presumo che la determinazione sia abbastanza semplice: dividi il giorno dell’anno per sette e guarda cosa abbiamo.
La seguente macro implementa l’approccio discusso finora.
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
Notare che c’è un valore che deve essere preso dal foglio di lavoro in questa macro: l’ultimo giorno dell’anno precedente. Si presume che si trovi nella cella A1 e che venga acquisito e inserito nella variabile BeginYear. Questo valore viene utilizzato per determinare il giorno dell’anno corrente.
_Nota: _
Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (3261) si applica a Microsoft Excel 97, 2000, 2002 e 2003. Puoi trovare una versione di questo suggerimento per l’interfaccia a nastro di Excel (Excel 2007 e versioni successive) qui: