Ho realizzato un foglio excel, denominato griglia, con un elenco, dove ogni casella è collegata per nome, data e committente, ad altrettanti successivi fogli excel con disegno. Come posso stampare solo alcuni fogli con disegno selezionandoli dalla griglia?
La procedura è la seguente:
immaginiamo di avere un foglio il cui nome è Griglia e tre fogli su cui ci sono i dati da stampare "Foglio1", "Foglio2" e "Foglio3":

A fianco di ogni foglio inseriamo un "Si" o un "No" per indicare se il foglio deve essere stampato o meno. Ovviamente i fogli devono essere già formattati per la stampa. Nel file Excel allegato troverete una formula per garantire che il nome dei foglio qui rappresentato sia esatto. Se compare un nome in questo elenco che non corrisponde a un nome del foglio, la macro si bloccherà con un errore.
La seguente Macro cerca i nomi dei fogli che hanno associato un "Si", li seleziona tutti contempraneamente e li manda in stampa:
Sub Stampa_selettiva()
'
' Macro registrata il 18/12/2008 da Aterzaghi
'
Dim i As Integer
Dim j As Integer
Dim Fogli As Variant
Dim GRIGLIA As Worksheet
Set GRIGLIA = Worksheets("Griglia")
i = 3
j = 0
While GRIGLIA.Cells(i, 3).Value <> ""
If GRIGLIA.Cells(i, 3).Value = "Si" Then
If j = 0 Then
Fogli = Array(GRIGLIA.Cells(i, 2).Value)
Else
ReDim Preserve Fogli(j)
Fogli(j) = GRIGLIA.Cells(i, 2).Value
End If
j = j + 1
End If
i = i + 1
Wend
Sheets(Fogli).Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("GRIGLIA").Select
End Sub
Ovviamente la macro è flessibile: è possibile aggiungere quanti fogli si desidera e cambiare i nomi ai fogli
| Attachment | Size |
|---|---|
| stampa_selettiva.zip | 9.02 KB |
Scarica la Toolbar!
Post new comment