View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Gareth[_6_] Gareth[_6_] is offline
external usenet poster
 
Posts: 158
Default Choose printout color or b/w using vba


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



Jonsson wrote:
Hi
I want to be able to choose whether printout is to be in black and
white or color.

I'm using the code below, but dont know how to set the option to color
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


//Thomas