Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Ciao Andrea,
si è vero, ma le risposte non avevano risolto l'esigenza da me posta, perché i suggerimenti dati non permettevano di stampare la cartella nell'insieme ma i singoli fogli. Ho chiesto ancora aiuto ma non ho ricevuto altre risposte. Poi un utente mi suggerito di porre la domanda nella community VBA e infine un utente di quest'ultima mi ha consigliato di proporre un nuovo tread nella Community di Office.
Ecco fatto. Spero che qualcuno mi aiuti.
In fondo sembra semplice: ho già la macro e mi permette di stampare la cartella ma solo con i fogli che si chiamano in un certo modo. Per me è importante stampare la cartella e non i singoli fogli perché in questo modo avrò un documento impaginato e numerato in sequenza nelle pagine. Vorrei solo che oltre ai fogli che hanno un certo nome la cartella da stampare comprendesse anche i Fogli con la cella A36 non vuota.
Grazie ancora.
Giuseppe
Ciao Giuseppe,
probabilmente troppo difficile per la Community Office e troppo facile per la Community VBA. ;)
Modifica i nomi dei fogli nella riga evidenziata.
Andrea.
Public Sub mStampa()
'dichiaro le variabili
Dim shArray As Sheets
Dim wk As Workbook
Dim ws As Worksheet
Dim lRisposta As Long
Dim sFogliDaStampare As String
On Error GoTo RigaErrore
'richiamo la finestra per la scelta della stampante
Application.Dialogs(xlDialogPrinterSetup).Show
'richiamo la MsgBox di conferma
lRisposta = MsgBox(Prompt:="Vuoi davvero stampare?", _
Buttons:=vbYesNo + vbQuestion, _
Title:="Continuare?")
'se l'utente preme Sì
If lRisposta = vbYes Then
'metto un riferimento al workbook
'che contiene il codice
Set wk = ThisWorkbook
With wk
'---------- inserisci qui i fogli da stampare predefiniti
sFogliDaStampare = "Pippo,Pluto,Paperino"
'---------- oltre a quelli predefiniti, aggiunge i fogli con A36 <> ""
For Each ws In .Worksheets
If InStr(sFogliDaStampare, ws.Name) = 0 Then
If Len(ws.Range("A36").Value) Then sFogliDaStampare = sFogliDaStampare & "," & ws.Name
End If
Next
'creo il nuovo insieme di fogli
Set shArray = .Worksheets(Split(sFogliDaStampare, ","))
End With
'stampa
shArray.PrintOut Copies:=1
End If
'riga sempre eseguita
RigaChiusura:
'Set a Nothing delle variabili oggetto
Set shArray = Nothing
Set wk = Nothing
Set ws = Nothing
'uscita dalla routine
Exit Sub
'in caso di errore
RigaErrore:
'MsgBox con numero e descrizione errore
MsgBox Err.Number & vbNewLine & Err.Description
'vai alla RigaChiusura
Resume RigaChiusura
End Sub