Choose printout color or b/w using vba

J

Jonsson

Hi
I want to be able to choose whether printout is to be in black an
white or color.

I'm using the code below, but dont know how to set the option to colo
or b/w
Can someone lead me to the right track?

Function Print
Dim Svar As String
Dim i As Long
Svar = MsgBox("Do you want to print in color?", vbYesNo, "Print out")
If Svar = vbYes Then
ActiveSheet.Select

For i = 4 To 33
Rows(i).EntireRow.Hidden = Range("A" & i).Value = 0
Next i
ActiveSheet.Select
.BlackAndWhite = False
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

ActiveSheet.Select

For i = 4 To 33
Rows(i).EntireRow.Hidden = False
Next i

Range("A1").Select

Else
If Svar = vbNo Then
ActiveSheet.Select

For i = 4 To 33
Rows(i).EntireRow.Hidden = Range("A" & i).Value = 0
Next i
ActiveSheet.Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
.BlackAndWhite = True
ActiveSheet.Select
For i = 4 To 33
Rows(i).EntireRow.Hidden = False
Next i
Range("A1").Select
End If
End If
End Function


//Thoma
 
G

Gareth

Hi,

If you try recording a macro of changing the pagesetup to printing black
and white that gives you most of the syntax.

As it stands, your code was a bit repetitive -so I've trimmed it down a
little.

HTH,
Gareth

Function PrintWithColourCheck()

Dim i As Long

With ActiveSheet

'Hide rows where the first column is empty
'(that's what you're trying to do here right?)
For i = 4 To 33
If .Range("A" & i).Value = 0 Then _
.Rows(i).EntireRow.Hidden = True
Next i

.PageSetup.BlackAndWhite = _
MsgBox("Do you want to print in color?", _
vbYesNo, "Print out") = vbNo

.PrintOut Copies:=1, Collate:=True

'Tidy up
.PageSetup.BlackAndWhite = False
Rows("4:33").EntireRow.Hidden = False

End With

End Function
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top