Come visualizzare i criteri di filtro sulla stampa

Microsoft Excel include alcuni ottimi strumenti che ti aiutano a filtrare tabelle di dati di grandi dimensioni per includere solo le informazioni che desideri visualizzare. In effetti, i filtri ti consentono di “fare a pezzettini” i tuoi dati finché non ottieni esattamente ciò che desideri.

Quando si stampano dati filtrati, potresti voler sapere quali operazioni di filtro sono state eseguite sui dati originali. Esistono diversi modi per visualizzare i criteri di filtro. Un modo semplice è utilizzare le funzionalità di filtro avanzato di Excel, che richiedono l’impostazione di una piccola tabella di criteri per i dati. Se la tabella dei criteri fa parte di ciò che stampi, puoi vedere i tuoi criteri di filtraggio abbastanza facilmente.

Se utilizzi il filtro automatico, devi utilizzare un approccio diverso. Uno di questi approcci era dettagliato nel sito di John Walkenbach, ma possiamo recuperarlo grazie ad archive.org.

Questa soluzione utilizza una funzione definita dall’utente per restituire eventuali criteri di filtro in uso nella colonna corrente. La funzione può essere utilizzata in una cella di quella colonna per visualizzare i criteri. Se utilizzi il filtraggio avanzato, l’approccio macro è un po’ più complesso. Le seguenti macro (ce ne sono due nel listato) esaminano quali criteri avanzati sono in gioco, quindi posizionano i criteri nella parte sinistra dell’intestazione.

 

Sub AddFilterCriteria()
    Dim strCriteria As String

    strCriteria = FilterCriteria()
    If strCriteria = "" Then
        strCriteria = "Nessun criterio di filtraggio"
    Else
        strCriteria = "Criteri di filtro:" & Chr(10) & strCriteria
    End If

'   aggiunge la stringa Criteri all'intestazione/piè di pagina
    With ActiveSheet.PageSetup
        .LeftHeader = strCriteria
    End With
End Sub

Function FilterCriteria() As String
    Dim rngCriteria As Range, col As Range, cel As Range
    Dim strCriteria As String, r As Integer, c As Integer
    Const strCriteriaRange As String = "Criteri"

    FilterCriteria = ""

    On Error Resume Next
    'Imposta il riferimento all'intervallo dei criteri
    Set rngCriteria = Range(strCriteriaRange)
    If Err <> 0 Then Exit Function
    On Error GoTo 0

'   Crea la stringa dei criteri
    c = 0
    For Each col In rngCriteria.Columns
        c = c + 1     ' Colonne dell'intervallo criteri
        r = 1         ' Righe dell'intervallo criteri
        For Each cel In col.Cells
            If r = 1 Then
                strCriteria = strCriteria & "Criterio" _
                  & c & " (" & cel.Value & ") = "
            Else
                strCriteria = strCriteria & "'" & cel.Value & "'"
                If IsEmpty(cel.Offset(1, 0)) Then
                    'Aggiungi il carattere di nuova riga se non è l'ultima colonna dei criteri
                    If c < rngCriteria.Columns.Count Then
                        strCriteria = strCriteria & Chr(10)
                    End If
                    Exit For
                End If
                strCriteria = strCriteria & "  "
            End If
            r = r + 1
        Next cel    ' prossima riga criteri
    Next col        ' prossima colonna criteri

    FilterCriteria = strCriteria
End Function

 

 

Per utilizzare la macro, esegui semplicemente la macro AddFilterCriteria, dopo aver impostato il filtro avanzato. La macro legge la tabella dei criteri e riunisce i criteri in una stringa inserita nell’intestazione sinistra.

 

 

Tags: , , , , , , , , , , , , , , , , , , ,

Ti è stato utile?