Le cartelle di lavoro possono contenere tutti i tipi di dati. Se hai una cartella di lavoro che include un numero di fogli di lavoro, ognuno contenente solo una piccola quantità di dati, potresti chiederti se esiste un modo per stampare più fogli di lavoro su un singolo foglio di carta.

Ci sono un paio di modi in cui puoi avvicinarti a una soluzione a questo problema. Il primo è semplicemente stampare più pagine per foglio, utilizzando le funzionalità del driver della stampante. Ad esempio, ho una vecchia HP LaserJet e il driver della stampante mi consente di specificare il numero di pagine da stampare per foglio di carta. Se volessi stampare tre o quattro fogli di lavoro di una sola pagina su un unico foglio di carta, tutto ciò che devo fare è seguire questi passaggi:

  1. Premi CTRL + P. Excel visualizza la finestra di dialogo Stampa (Excel 2007) o le opzioni di stampa (Excel 2010 ed Excel 2013).

  2. Se si utilizza Excel 2007, scegliere l’opzione Intera cartella di lavoro nell’area Stampa della finestra di dialogo. Se si utilizza una versione successiva di Excel, utilizzare l’elenco a discesa immediatamente sotto l’intestazione Impostazioni per scegliere Stampa intera cartella di lavoro.

  3. Fare clic sul pulsante Proprietà (Excel 2007) o sul collegamento Proprietà stampante (versioni successive di Excel). Excel visualizza la finestra di dialogo Proprietà per la stampante, con la scheda Layout selezionata.

  4. Imposta il controllo Pages Per Sheet su 4.

  5. Fare clic su OK per chiudere la finestra di dialogo Proprietà.

  6. Fare clic su OK per stampare effettivamente i fogli di lavoro.

La stampante può offrire una funzionalità simile a quanto descritto qui, ma potrebbe essere necessario esplorare attraverso la finestra di dialogo Proprietà della stampante per trovare quella capacità. Ovviamente, stampare in questo modo può portare a un testo molto piccolo sulla stampa, perché il driver della stampante riduce semplicemente ogni pagina per occupare un’area proporzionata della pagina stampata. Se si desidera ridurre parte dello spazio bianco e quindi aumentare la dimensione del testo stampato, è necessario cercare una soluzione diversa.

Molte persone, per consolidare ciò che viene stampato, in realtà creano un “foglio di lavoro per la stampa” che non contiene altro che riferimenti alle aree da stampare sugli altri fogli di lavoro della cartella di lavoro. Questi riferimenti possono essere eseguiti tramite formule che fanno riferimento ai dati su ciascun foglio di lavoro o utilizzando lo strumento fotocamera in Excel. (Lo strumento fotocamera è stato descritto in altri numeri di ExcelTips.)

Per una soluzione automatizzata di amalgamare più fogli di lavoro in un unico foglio di lavoro, puoi utilizzare una macro. La seguente macro creerà un nuovo foglio di lavoro alla fine della cartella di lavoro e copierà il contenuto da tutti gli altri fogli di lavoro al suo interno.

Sub PrintOnePage()

Dim wshTemp As Worksheet, wsh As Worksheet  Dim rngArr() As Range, c As Range  Dim i As Integer  Dim j As Integer

ReDim rngArr(1 To 1)

For Each wsh In ActiveWorkbook.Worksheets  i = i + 1  If i > 1 Then ' resize array   ReDim Preserve rngArr(1 To i)

End If

On Error Resume Next  Set c = wsh.Cells.SpecialCells(xlCellTypeLastCell)

If Err = 0 Then   On Error GoTo 0

'Prevent empty rows   Do While Application.CountA(c.EntireRow) = 0 _   And c.EntireRow.Row > 1   Set c = c.Offset(-1, 0)

Loop

Set rngArr(i) = wsh.Range(wsh.Range("A1"), c)

End If  Next wsh

'Add temp.Worksheet  Set wshTemp = Sheets.Add(after:=Worksheets(Worksheets.Count))



On Error Resume Next  With wshTemp  For i = 1 To UBound(rngArr)

If i = 1 Then   Set c = .Range("A1")

Else   Set c = _    ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell)

Set c = c.Offset(2, 0).End(xlToLeft) 'Skip one row   End If

'Copy-paste range (prevent empty range)

If Application.CountA(rngArr(i)) > 0 Then   rngArr(i).Copy c   End If  Next i  End With  On Error GoTo 0

Application.CutCopyMode = False ' prevent marquies

With ActiveSheet.PageSetup 'Fit to 1 page  .Zoom = False  .FitToPagesWide = 1  .FitToPagesTall = 1  End With

'Preview New Sheet  ActiveWindow.SelectedSheets.PrintPreview

'Print Desired Number of Copies  i = InputBox("Print how many copies?", "ExcelTips", 1)

If IsNumeric(i) Then  If i > 0 Then   ActiveSheet.PrintOut Copies:=i  End If  End If

'Delete temp.Worksheet?

If MsgBox("Delete the temporary worksheet?", _  vbYesNo, "ExcelTips") = vbYes Then  Application.DisplayAlerts = False  wshTemp.Delete  Application.DisplayAlerts = True  End If End Sub

Dopo che il foglio di lavoro combinato è stato assemblato, la macro visualizza il foglio di lavoro utilizzando Anteprima di stampa. Quando si chiude l’anteprima di stampa, viene chiesto quante copie del foglio di lavoro si desidera stampare. Se inserisci un numero maggiore di zero, verranno stampate altrettante copie. Infine, la macro offre di eliminare il foglio di lavoro combinato per te appena prima di terminare.

_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 (8315) si applica a Microsoft Excel 2007, 2010 e 2013. Puoi trovare una versione di questo suggerimento per la vecchia interfaccia di menu di Excel qui: