Come stampare in bianco e nero o a colori

Chiara ha una cartella di lavoro contenente 30 fogli di lavoro. Vorrebbe stampare i fogli da 1 a 29 in bianco e nero e il foglio 30 a colori. Si chiede se esista un modo per stampare tutti i fogli di lavoro contemporaneamente e specificare che un particolare foglio di lavoro debba essere stampato solo a colori.

Questo è più semplice da fare con una macro. Tutto ciò che serve è impostare la proprietà .BlackAndWhite per ciascun foglio di lavoro subito prima che venga stampato. Ad esempio, considera la seguente semplice macro:

 

Sub PrintSingleColorSheet()
    Dim w As Worksheet
    Dim S As Integer
    ' Imposta il foglio che dev'essere a colori
    ' (tutti gli altri saranno stampati in B/N)
    S = 30
    For Each w In Worksheets
        w.PageSetup.BlackAndWhite = True
        If w.Index = S Then
            w.PageSetup.BlackAndWhite = False
        End If
        w.PrintOut
    Next w
End Sub

 

 

La macro memorizza nella variabile S il numero di indice del foglio di lavoro che vuoi che sia a colori (in questo caso, il numero di indice è 30). Quindi, ogni foglio di lavoro viene esaminato e la proprietà .BlackAndWhite viene impostata su True. Se, tuttavia, la proprietà .Index del foglio di lavoro corrisponde al valore archiviato in S, la proprietà .BlackAndWhite viene impostata su False, ovvero verrà stampata a colori. La stampa viene quindi inviata alla stampante predefinita.

Se lo desideri, la macro potrebbe essere più elaborata, il che significa che potresti chiedere all’utente quale foglio di lavoro stampare a colori:

 

Sub PrintSingleColorSheet()
    Dim w As Worksheet
    Dim S As Integer
    Dim sTemp As String
    Dim sMsg As String
    sMsg = "Ci sono " & Worksheets.Count & " fogli in questa "
    sMsg = sMsg & "cartella di lavoro. Inserisci il numero del singolo "
    sMsg = sMsg & "foglio che vuoi stampare a colori (tutti"
    sMsg = sMsg & "gli altri verranno stampati in B/N)."
    sTemp = InputBox(sMsg)
    S = Val(sTemp)
    If S > 0 And S <= Worksheets.Count Then
        For Each w In Worksheets
            w.PageSetup.BlackAndWhite = True
            If w.Index = S Then
                w.PageSetup.BlackAndWhite = False
            End If
            w.PrintOut
        Next w
    Else
        sMsg = "Hai inserito un valore fuori range."
        If sTemp <> "" Then
            MsgBox sMsg
        End If
    End If
End Sub

 

 

Questa versione della macro chiede all’utente di inserire un numero di foglio di lavoro. Se il valore immesso non rientra nell’intervallo, viene visualizzato un messaggio di errore e la macro non stampa nulla. Se l’utente fa clic su Annulla o lascia vuota la casella di input, la macro esce semplicemente senza stampare nulla.

 

 

 

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

Ti è stato utile?