Mitchell ha molti dati in un foglio di lavoro che rappresenta tutti gli purchase order della sua azienda per un anno. I dati vengono ordinati nella colonna C, che contiene i nomi dei fornitori. Mitchell vuole stampare una pagina separata per ogni fornitore con tutti i dati per quelle righe. Si chiede se esista un modo per automatizzare la stampa di fogli specifici del fornitore.

Come per molte cose in Excel, ci sono più approcci che puoi adottare per questo problema. In questo suggerimento esaminerò quattro approcci. Tutti e quattro gli approcci presumono che i tuoi dati siano ordinati in base alla colonna del nome del fornitore (colonna C) e che tu abbia intestazioni di colonna su ciascuna colonna dei tuoi dati (nome, data, numero PO, fornitore, ecc.).

Uso dei totali parziali

Per stampare fogli specifici del fornitore utilizzando i totali parziali, inizia selezionando una cella all’interno dei tuoi dati. (Una cella nella colonna C sarebbe perfetta.) Se i dati non sono contigui, potrebbe essere necessario selezionarli tutti manualmente; se è contigua, invece, dovrebbe essere sufficiente selezionare la singola cella. Quindi, segui questi passaggi:

  1. Visualizza la scheda Dati della barra multifunzione.

  2. Nel gruppo Struttura fare clic sullo strumento Totale parziale. Excel visualizza la finestra di dialogo Subtotale. (Vedi figura 1.)

  3. Assicurati che l’elenco a discesa Ad ogni modifica in sia impostato su Fornitore. (Usa il nome della colonna C.) Questo indica dove Excel inserirà i totali parziali.

  4. L’elenco a discesa Usa funzione dovrebbe essere impostato su Conteggio.

  5. Utilizzando l’elenco nella casella Aggiungi totale parziale a, selezionare la colonna Fornitore (colonna C). Qui è dove verrà aggiunto il conteggio.

  6. Assicurati che la casella di controllo Sostituisci subtotali correnti sia selezionata.

  7. Assicurati che la casella di controllo Interruzioni di pagina tra i gruppi sia selezionata.

  8. Assicurati che la casella di controllo Riepilogo sotto i dati sia selezionata.

  9. Fare clic su OK.

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

Una volta stampato, ciò che ottieni è una pagina stampata per ciascuno dei tuoi fornitori. Il totale parziale appena sotto l’ultima riga di ogni pagina indica il numero di ordini di acquisto stampati per quel particolare fornitore.

Uso dei dati filtrati

Filtrare i dati è abbastanza semplice e questo è un buon approccio se non è necessario stampare questi tipi di rapporti così spesso. Di nuovo, 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. Fare 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), scegliere il nome del fornitore che si desidera stampare. L’elenco viene filtrato automaticamente per visualizzare solo gli ordini di acquisto di quel fornitore.

  4. Stampa la pagina come faresti normalmente. Il report stampato dovrebbe mostrare solo gli ordini di acquisto per il fornitore specificato nel passaggio 3.

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

Uso di tabelle pivot

Un altro modo veloce per creare i rapporti desiderati è utilizzare le funzionalità di tabella pivot di Excel. Non spiegherò come creare una tabella pivot qui, poiché è stato trattato in altri numeri di ExcelTips. La tabella pivot può essere impostata praticamente come si desidera, ma è necessario assicurarsi che il campo Fornitore si trovi nel gruppo Filtri del riquadro Campi tabella pivot. (Vedi figura 2.)

image

Figura 2. Impostazione della tabella pivot.

Successivamente, visualizza la scheda Opzioni o Analizza della barra multifunzione, a seconda della versione di Excel. (Queste schede sono visibili solo quando si seleziona una cella all’interno della tabella pivot.) Nel gruppo Tabella pivot, a sinistra della barra multifunzione, fare clic sull’elenco a discesa Opzioni e scegliere Mostra pagine filtro report. (Questa opzione è disponibile solo se ci si assicura che il campo Fornitore sia nel gruppo Filtri, come accennato in precedenza). Excel visualizza la finestra di dialogo Mostra pagine filtro report. (Vedi figura 3.)

image

Figura 3. Finestra di dialogo Mostra pagine filtro report.

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

Uso delle macro

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

Sub CreateVendorSheets()

' To use this macro, select the first cell in     ' the column that contains the vendor names.



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

' Find last row in the worksheet     Set rVendorRange = ActiveSheet.Range(Selection, _       ActiveSheet.Cells(Selection.SpecialCells(xlCellTypeLastCell).Row, _       Selection.Column))



' Collecting all the vendor names in use     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

' Create worksheets     For J = 1 To iVendors         Worksheets.Add After:=Worksheets(Worksheets.Count)

ActiveSheet.Name = sVendors(J)

Next J

' Start copying information     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. Al termine, avrai un foglio di lavoro per ogni fornitore, che puoi formattare e stampare come desideri. (È possibile rendere la macro ancora più utile aggiungendo codice che inserirà le informazioni sull’intestazione di colonna o altre informazioni in ciascun foglio di lavoro creato.) Al termine, sarà necessario eliminare i fogli di lavoro per quei fornitori in modo che la prossima volta che si esegue la macro non incappi in un problema.

_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 (13633) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 e Excel in Office 365.