Come stampare una pagina per ogni valore univoco

Michele ha tutti gli ordini di acquisto dell’anno della sua azienda nella stesso foglio di lavoro. I dati sono ordinati nella colonna C, che contiene i nomi dei fornitori. Michele desidera stampare una pagina separata per ciascun fornitore con tutti i dati di quelle righe. Si chiede se esista un modo per automatizzare la stampa di fogli specifici per ogni fornitore.

Come per molte cose in Excel, esistono diversi approcci che puoi adottare per questo problema. In questo suggerimento esaminerò quattro approcci. Tutti e quattro gli approcci presuppongono che i dati siano ordinati in base alla colonna del nome del fornitore (colonna C) e che siano presenti intestazioni di colonna su ciascuna colonna di dati (Data, Numero ordine di acquisto, Fornitore, Importo, ecc.).

 

Usare i Subtotali

Per stampare fogli specifici per ogni fornitore utilizzando i subtotali, inizia selezionando una cella all’interno dei tuoi dati (una cella nella colonna C sarebbe perfetta). Se i tuoi dati non sono contigui, potrebbe essere necessario selezionarli tutti manualmente; se lo sono, invece, la selezione della singola cella dovrebbe essere sufficiente. Quindi, segui questi passaggi:

  1. Visualizza la scheda Dati della barra multifunzione.
  2. Nel gruppo Struttura fai clic sullo strumento Subtotale. Excel visualizza la finestra di dialogo Subtotali.
  3. Assicurati che l’elenco a discesa Ad ogni cambiamento in sia impostato su Fornitore (utilizza il nome della colonna C). Indica al cambiamento di quale valore Excel inserirà i subtotali.
  4. L’elenco a discesa Usa la funzione deve essere impostato su Somma.
  5. Utilizzando l’elenco nella casella Aggiungi subtotali a, seleziona la colonna Importo. Qui verrà aggiunta la somma.
  6. Assicurati che la casella di controllo Sostituisci i subtotali correnti sia selezionata.
  7. Assicurati che la casella di controllo Interruzioni di pagina tra gruppi sia selezionata.
  8. Assicurati che la casella di controllo Riepilogo sotto i dati sia selezionata.

 

Come stampare una pagina per ogni valore univoco 1

 

  1. Fai clic su OK.

 

Excel inserisce i subtotali nel foglio di lavoro, ma inserirà anche le interruzioni di pagina prima di ogni nuovo fornitore (ciò è dovuto al passaggio 7, qua sopra). Le interruzioni di pagina potrebbero non essere immediatamente evidenti, ma entrano in gioco quando si stampa il foglio di lavoro.

Una volta stampata, ciò che ti ritroverai è una pagina per ciascuno dei tuoi fornitori. Il totale parziale appena sotto l’ultima riga di ciascuna pagina indica la somma dell’importo degli ordini d’acquisto stampati per quel particolare fornitore.

 

Usare i Dati filtrati

Filtrare i dati è abbastanza semplice e questo è un buon approccio se non è necessario stampare questo tipo di report così spesso. Ancora una volta, inizia selezionando una cella all’interno dei tuoi dati, a meno che i tuoi dati non siano contigui (in tal caso dovrai selezionare manualmente tutti i tuoi dati). Quindi, segui questi passaggi:

  1. Visualizza la scheda Dati della barra multifunzione.
  2. Fai clic sullo strumento Filtro nel gruppo Ordina e filtra. Excel dovrebbe visualizzare gli indicatori a discesa del filtro automatico accanto a ciascuna etichetta di colonna nella riga 1.
  3. Utilizzando l’indicatore a discesa per la colonna Fornitore (colonna C), scegli il nome del fornitore che desideri stampare. Il tuo elenco viene automaticamente filtrato per visualizzare solo gli ordini d’acquisto di quel fornitore.
  4. Stampa la pagina come faresti normalmente. Il report stampato dovrebbe mostrare solo gli ordini d’acquisto per il fornitore specificato nel passaggio 3.

 

Se desideri stampare report per altri fornitori, tutto ciò che devi fare è cambiare il filtro (passaggio 3) e ristampare (passaggio 4). Al termine, è possibile rimuovere il filtro facendo nuovamente clic sullo strumento Filtro nella scheda Dati della barra multifunzione.

 

Usare le Tabelle Pivot

Un altro modo rapido per creare i report desiderati è utilizzare le funzionalità Tabella pivot di Excel. Non entrerò nel dettaglio di come creare una tabella pivot in questa sede. La tua tabella pivot può essere impostata praticamente come preferisci, ma devi assicurarti che il campo Fornitore si trovi nel gruppo Filtri del riquadro Campi tabella pivot.

 

Come stampare una pagina per ogni valore univoco 2

 

Successivamente, visualizza la scheda Analisi tabella pivot della barra multifunzione (questa scheda è visibile solo quando selezioni una cella all’interno della tabella pivot). Nel gruppo Tabella pivot, a sinistra della barra multifunzione, fai clic sull’elenco a discesa Opzioni e scegli Mostra pagine filtro rapporto (questa opzione è disponibile solo se ti sei assicurato che il campo Fornitore sia nel gruppo Filtri, come menzionato in precedenza). Excel visualizza la finestra di dialogo Mostra pagine filtro rapporto.

 

Come stampare una pagina per ogni valore univoco 3

 

Nella finestra di dialogo dovrebbe essere elencato un solo campo, a meno che tu non abbia aggiunto più campi al gruppo Filtri. Se è elencato più di un campo, assicurati di fare clic sul campo Fornitore. Quando fai clic su OK, Excel crea fogli di lavoro tabella pivot separati per ciascun fornitore nella tabella dati. A seconda delle informazioni che hai scelto di includere nella tabella pivot, questi possono creare ottimi report per i tuoi fornitori. È quindi possibile stampare i fogli di lavoro per ottenere i report desiderati.

 

Usare le macro

Esistono molti modi in cui puoi impostare una macro per fornirti i dati desiderati. Personalmente, preferisco una macro che esamini i tuoi dati e crei nuovi fogli di lavoro per ciascun fornitore. Questo è ciò che fa la macro seguente: compila un elenco di fornitori dai tuoi dati e quindi crea un foglio di lavoro con il nome di ciascun fornitore. Quindi copia le informazioni dal foglio di lavoro originale ai fogli di lavoro appena creati.

 

Sub CreaFogliFornitori()
    ' Per utilizzare questa macro, seleziona la prima cella
    ' nella colonna che contiene i nomi dei fornitori.

    Dim sTemp As String
    Dim sVendors(99) As String
    Dim iVendorCounts(99) As Integer
    Dim iVendors As Integer
    Dim rVendorRange As Range
    Dim c As Range
    Dim J As Integer
    Dim bFound As Boolean

    ' Trova l'ultima riga nel foglio di lavoro
    Set rVendorRange = ActiveSheet.Range(Selection, _
      ActiveSheet.Cells(Selection.SpecialCells(xlCellTypeLastCell).Row, _
      Selection.Column))

    ' Raccoglie tutti i nomi dei fornitori in uso
    iVendors = 0

    For Each c In rVendorRange
        bFound = False
        sTemp = Trim(c)
        If sTemp > "" Then
            For J = 1 To iVendors
                If sTemp = sVendors(J) Then bFound = True
            Next J
            If Not bFound Then
                iVendors = iVendors + 1
                sVendors(iVendors) = sTemp
                iVendorCounts(iVendors) = 0
            End If
        End If
    Next c

    ' Crea il foglio di lavoro
    For J = 1 To iVendors
        Worksheets.Add After:=Worksheets(Worksheets.Count)
        ActiveSheet.Name = sVendors(J)
    Next J

    ' Copia le informazioni
    Application.ScreenUpdating = False
    For Each c In rVendorRange
        sTemp = Trim(c)
        If sTemp > "" Then
            For J = 1 To iVendors
                If sTemp = sVendors(J) Then
                    iVendorCounts(J) = iVendorCounts(J) + 1
                    c.EntireRow.Copy Sheets(sVendors(J)). _
                      Cells(iVendorCounts(J), 1)
                End If
            Next J
        End If
    Next c
    Application.ScreenUpdating = True
End Sub

 

 

Come notato all’inizio della macro, è necessario selezionare la prima cella di dati nella colonna Fornitore prima di eseguire la macro. Una volta completato, avrai un foglio di lavoro per ciascun fornitore, che potrai formattare e stampare come desideri (potresti rendere la macro ancora più utile aggiungendo codice che inserirà informazioni sull’intestazione di colonna o altre informazioni in ogni foglio di lavoro creato). Una volta terminato, dovrai eliminare i fogli di lavoro per quei fornitori in modo che la prossima volta che esegui la macro non avrai problemi.

 

 

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

Ti è stato utile?