Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35
Default Can I disable a macro in "Thisworkbook" with true or false?

Here is my challenge Someone helped me right the following code
that automatically selects the number of pages to print. But...

I would like to use a check box in the workbook to put a True or False
in a cell, for example S1 that would disable the above code. End goal:
Some users could ignore the check box and the worksheet would print as many
pages as are indicated in S2 and the more advanced users could check the
box, thus returning the print parameters to them enabling them to select any
combination of pages to print.

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim rng As Range

Set rng = ActiveSheet.Range("S2")
On Error GoTo XIT

Application.EnableEvents = False
Cancel = True
ActiveSheet.PrintOut from:=1, to:=rng.Value

XIT:
Application.EnableEvents = True
End Sub


Any ideas? Thanks for your time....


  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 486
Default Can I disable a macro in "Thisworkbook" with true or false?

Add a checkbox from the control toolbox (not the forms toolbar) to the sheet
you want. Right click on the checkbox and select properties. Change the
caption to "Whatever" and change the print object to false (if you want). now
chage your code similar to this...

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim rng As Range

if Check_Box1.value = true then
Set rng = ActiveSheet.Range("S2")
On Error GoTo XIT

Application.EnableEvents = False
Cancel = True
ActiveSheet.PrintOut from:=1, to:=rng.Value
end if
XIT:
Application.EnableEvents = True
End Sub


--
HTH...

Jim Thomlinson


"Husker87" wrote:

Here is my challenge Someone helped me right the following code
that automatically selects the number of pages to print. But...

I would like to use a check box in the workbook to put a True or False
in a cell, for example S1 that would disable the above code. End goal:
Some users could ignore the check box and the worksheet would print as many
pages as are indicated in S2 and the more advanced users could check the
box, thus returning the print parameters to them enabling them to select any
combination of pages to print.

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim rng As Range

Set rng = ActiveSheet.Range("S2")
On Error GoTo XIT

Application.EnableEvents = False
Cancel = True
ActiveSheet.PrintOut from:=1, to:=rng.Value

XIT:
Application.EnableEvents = True
End Sub


Any ideas? Thanks for your time....


  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35
Default Can I disable a macro in "Thisworkbook" with true or false?

Jim,
I'm getting hung up in the naming of the checkbox... (from the control
toolbox)

in the code is says...
if Check_Box1.value = true then
but
when I add a checkbox it is named, "CheckBox1" I have been trying to change
one or the other to make them the same but with no succes. Any ideas on what
I'm missing? (other than VBA skill)

"Jim Thomlinson" wrote:

Add a checkbox from the control toolbox (not the forms toolbar) to the sheet
you want. Right click on the checkbox and select properties. Change the
caption to "Whatever" and change the print object to false (if you want). now
chage your code similar to this...

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim rng As Range

if Check_Box1.value = true then
Set rng = ActiveSheet.Range("S2")
On Error GoTo XIT

Application.EnableEvents = False
Cancel = True
ActiveSheet.PrintOut from:=1, to:=rng.Value
end if
XIT:
Application.EnableEvents = True
End Sub


--
HTH...

Jim Thomlinson


"Husker87" wrote:

Here is my challenge Someone helped me right the following code
that automatically selects the number of pages to print. But...

I would like to use a check box in the workbook to put a True or False
in a cell, for example S1 that would disable the above code. End goal:
Some users could ignore the check box and the worksheet would print as many
pages as are indicated in S2 and the more advanced users could check the
box, thus returning the print parameters to them enabling them to select any
combination of pages to print.

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim rng As Range

Set rng = ActiveSheet.Range("S2")
On Error GoTo XIT

Application.EnableEvents = False
Cancel = True
ActiveSheet.PrintOut from:=1, to:=rng.Value

XIT:
Application.EnableEvents = True
End Sub


Any ideas? Thanks for your time....


  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default Can I disable a macro in "Thisworkbook" with true or false?

Go into design mode (another icon on that control toolbox toolbar).

Select the checkbox
You can change the name of that checkbox in the namebox (to the left of the
formula bar).
(and exit design mode)

But if you workbook has more than one sheet, I would think you'd want to be more
specific.

There's lots of ways to print a workbook. I think I'd use a dedicated macro to
print what I want--instead of using workbook_beforeprint....

But...

Option Explicit
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim myVal As Long
Cancel = True
With Me.Worksheets("sheet1")
If .CheckBox1.Value = True Then
myVal = .Range("S2").Value
If IsNumeric(myVal) Then
'keep going
If myVal < 1 Then
myVal = 1
End If
If myVal 10 Then
myVal = 10 'do you have a maximum
End If
Application.EnableEvents = False
.PrintOut from:=1, to:=myVal
Application.EnableEvents = True
End If
End If
End With
End Sub


_might_ be one way to do what you want.

Husker87 wrote:

Jim,
I'm getting hung up in the naming of the checkbox... (from the control
toolbox)

in the code is says...
if Check_Box1.value = true then
but
when I add a checkbox it is named, "CheckBox1" I have been trying to change
one or the other to make them the same but with no succes. Any ideas on what
I'm missing? (other than VBA skill)

"Jim Thomlinson" wrote:

Add a checkbox from the control toolbox (not the forms toolbar) to the sheet
you want. Right click on the checkbox and select properties. Change the
caption to "Whatever" and change the print object to false (if you want). now
chage your code similar to this...

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim rng As Range

if Check_Box1.value = true then
Set rng = ActiveSheet.Range("S2")
On Error GoTo XIT

Application.EnableEvents = False
Cancel = True
ActiveSheet.PrintOut from:=1, to:=rng.Value
end if
XIT:
Application.EnableEvents = True
End Sub


--
HTH...

Jim Thomlinson


"Husker87" wrote:

Here is my challenge Someone helped me right the following code
that automatically selects the number of pages to print. But...

I would like to use a check box in the workbook to put a True or False
in a cell, for example S1 that would disable the above code. End goal:
Some users could ignore the check box and the worksheet would print as many
pages as are indicated in S2 and the more advanced users could check the
box, thus returning the print parameters to them enabling them to select any
combination of pages to print.

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim rng As Range

Set rng = ActiveSheet.Range("S2")
On Error GoTo XIT

Application.EnableEvents = False
Cancel = True
ActiveSheet.PrintOut from:=1, to:=rng.Value

XIT:
Application.EnableEvents = True
End Sub


Any ideas? Thanks for your time....



--

Dave Peterson
  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35
Default Can I disable a macro in "Thisworkbook" with true or false?

I got your macro to work but when the box isnt check they cant print.
Maybe this cant be done but here is the concept. Workbook has 5 worksheets.
There is a macro in Thisworkbook that looks at the number in cell S2 on
each worksheet when that worksheet is selected for printing and only prints
that many pages. I wanted a check box on one of the worksheets that, when
checked, the number of pages allowed to print would come from cell S2 and
when it was not checked the user could select the number(s) of pages to print
just like normal.

Is that even possible? And thanks for time already spent.


"Dave Peterson" wrote:

Go into design mode (another icon on that control toolbox toolbar).

Select the checkbox
You can change the name of that checkbox in the namebox (to the left of the
formula bar).
(and exit design mode)

But if you workbook has more than one sheet, I would think you'd want to be more
specific.

There's lots of ways to print a workbook. I think I'd use a dedicated macro to
print what I want--instead of using workbook_beforeprint....

But...

Option Explicit
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim myVal As Long
Cancel = True
With Me.Worksheets("sheet1")
If .CheckBox1.Value = True Then
myVal = .Range("S2").Value
If IsNumeric(myVal) Then
'keep going
If myVal < 1 Then
myVal = 1
End If
If myVal 10 Then
myVal = 10 'do you have a maximum
End If
Application.EnableEvents = False
.PrintOut from:=1, to:=myVal
Application.EnableEvents = True
End If
End If
End With
End Sub


_might_ be one way to do what you want.

Husker87 wrote:

Jim,
I'm getting hung up in the naming of the checkbox... (from the control
toolbox)

in the code is says...
if Check_Box1.value = true then
but
when I add a checkbox it is named, "CheckBox1" I have been trying to change
one or the other to make them the same but with no succes. Any ideas on what
I'm missing? (other than VBA skill)

"Jim Thomlinson" wrote:

Add a checkbox from the control toolbox (not the forms toolbar) to the sheet
you want. Right click on the checkbox and select properties. Change the
caption to "Whatever" and change the print object to false (if you want). now
chage your code similar to this...

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim rng As Range

if Check_Box1.value = true then
Set rng = ActiveSheet.Range("S2")
On Error GoTo XIT

Application.EnableEvents = False
Cancel = True
ActiveSheet.PrintOut from:=1, to:=rng.Value
end if
XIT:
Application.EnableEvents = True
End Sub


--
HTH...

Jim Thomlinson


"Husker87" wrote:

Here is my challenge⦠Someone helped me right the following code
that automatically selects the number of pages to print. But...

I would like to use a check box in the workbook to put a âœTrue❠or âœFalseâ
in a cell, for example âœS1❠that would disable the above code. End goal:
Some users could ignore the check box and the worksheet would print as many
pages as are indicated in âœS2❠and the more advanced users could check the
box, thus returning the print parameters to them⦠enabling them to select any
combination of pages to print.

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim rng As Range

Set rng = ActiveSheet.Range("S2")
On Error GoTo XIT

Application.EnableEvents = False
Cancel = True
ActiveSheet.PrintOut from:=1, to:=rng.Value

XIT:
Application.EnableEvents = True
End Sub


Any ideas? Thanks for your time....



--

Dave Peterson



  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default Can I disable a macro in "Thisworkbook" with true or false?

First, I'd turn off normal printing.

Option Explicit
Private Sub Workbook_BeforePrint(Cancel As Boolean)
MsgBox "Please use the special print button to print your sheet"
Cancel = True
End Sub


And only allow them to print via a button on each worksheet.

I'd put a button from the forms toolbar on each worksheet. And drop the
checkbox completely. Just let them print as many copies as they have in S2 of
that sheet.

Option Explicit
Sub testme()
Dim myVal As Variant
Dim Msg As String
Msg = ""
With ActiveSheet
myVal = .Range("S2").Value
If IsNumeric(myVal) Then
'keep going
If myVal < 1 Then
myVal = 1
Msg = "Copies changed to 1"
End If
If myVal 10 Then
myVal = 10 'do you have a maximum
Msg = "Copies changed to 10"
End If
Application.EnableEvents = False
.PrintOut from:=1, to:=myVal
Application.EnableEvents = True
Else
Msg = "Invalid entry in S2"
End If

If Msg = "" Then
'do nothing, everything ok
Else
MsgBox Msg
End If

End With
End Sub



Husker87 wrote:

I got your macro to work but when the box isnt check they cant print.
Maybe this cant be done but here is the concept. Workbook has 5 worksheets.
There is a macro in Thisworkbook that looks at the number in cell S2 on
each worksheet when that worksheet is selected for printing and only prints
that many pages. I wanted a check box on one of the worksheets that, when
checked, the number of pages allowed to print would come from cell S2 and
when it was not checked the user could select the number(s) of pages to print
just like normal.

Is that even possible? And thanks for time already spent.

"Dave Peterson" wrote:

Go into design mode (another icon on that control toolbox toolbar).

Select the checkbox
You can change the name of that checkbox in the namebox (to the left of the
formula bar).
(and exit design mode)

But if you workbook has more than one sheet, I would think you'd want to be more
specific.

There's lots of ways to print a workbook. I think I'd use a dedicated macro to
print what I want--instead of using workbook_beforeprint....

But...

Option Explicit
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim myVal As Long
Cancel = True
With Me.Worksheets("sheet1")
If .CheckBox1.Value = True Then
myVal = .Range("S2").Value
If IsNumeric(myVal) Then
'keep going
If myVal < 1 Then
myVal = 1
End If
If myVal 10 Then
myVal = 10 'do you have a maximum
End If
Application.EnableEvents = False
.PrintOut from:=1, to:=myVal
Application.EnableEvents = True
End If
End If
End With
End Sub


_might_ be one way to do what you want.

Husker87 wrote:

Jim,
I'm getting hung up in the naming of the checkbox... (from the control
toolbox)

in the code is says...
if Check_Box1.value = true then
but
when I add a checkbox it is named, "CheckBox1" I have been trying to change
one or the other to make them the same but with no succes. Any ideas on what
I'm missing? (other than VBA skill)

"Jim Thomlinson" wrote:

Add a checkbox from the control toolbox (not the forms toolbar) to the sheet
you want. Right click on the checkbox and select properties. Change the
caption to "Whatever" and change the print object to false (if you want). now
chage your code similar to this...

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim rng As Range

if Check_Box1.value = true then
Set rng = ActiveSheet.Range("S2")
On Error GoTo XIT

Application.EnableEvents = False
Cancel = True
ActiveSheet.PrintOut from:=1, to:=rng.Value
end if
XIT:
Application.EnableEvents = True
End Sub


--
HTH...

Jim Thomlinson


"Husker87" wrote:

Here is my challenge⦠Someone helped me right the following code
that automatically selects the number of pages to print. But...

I would like to use a check box in the workbook to put a âœTrue❠or âœFalseâ
in a cell, for example âœS1❠that would disable the above code. End goal:
Some users could ignore the check box and the worksheet would print as many
pages as are indicated in âœS2❠and the more advanced users could check the
box, thus returning the print parameters to them⦠enabling them to select any
combination of pages to print.

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim rng As Range

Set rng = ActiveSheet.Range("S2")
On Error GoTo XIT

Application.EnableEvents = False
Cancel = True
ActiveSheet.PrintOut from:=1, to:=rng.Value

XIT:
Application.EnableEvents = True
End Sub


Any ideas? Thanks for your time....



--

Dave Peterson


--

Dave Peterson
  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35
Default Can I disable a macro in "Thisworkbook" with true or false?

I'm with you... good suggestions. However soemtimes they need (want) to just
print the second or just the third page.

"Husker87" wrote:

Here is my challenge Someone helped me right the following code
that automatically selects the number of pages to print. But...

I would like to use a check box in the workbook to put a True or False
in a cell, for example S1 that would disable the above code. End goal:
Some users could ignore the check box and the worksheet would print as many
pages as are indicated in S2 and the more advanced users could check the
box, thus returning the print parameters to them enabling them to select any
combination of pages to print.

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim rng As Range

Set rng = ActiveSheet.Range("S2")
On Error GoTo XIT

Application.EnableEvents = False
Cancel = True
ActiveSheet.PrintOut from:=1, to:=rng.Value

XIT:
Application.EnableEvents = True
End Sub


Any ideas? Thanks for your time....


  #8   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default Can I disable a macro in "Thisworkbook" with true or false?

Then maybe just make it a training issue. Make sure everyone knows how to do
what they need to do.

Husker87 wrote:

I'm with you... good suggestions. However soemtimes they need (want) to just
print the second or just the third page.

"Husker87" wrote:

Here is my challenge Someone helped me right the following code
that automatically selects the number of pages to print. But...

I would like to use a check box in the workbook to put a True or False
in a cell, for example S1 that would disable the above code. End goal:
Some users could ignore the check box and the worksheet would print as many
pages as are indicated in S2 and the more advanced users could check the
box, thus returning the print parameters to them enabling them to select any
combination of pages to print.

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim rng As Range

Set rng = ActiveSheet.Range("S2")
On Error GoTo XIT

Application.EnableEvents = False
Cancel = True
ActiveSheet.PrintOut from:=1, to:=rng.Value

XIT:
Application.EnableEvents = True
End Sub


Any ideas? Thanks for your time....



--

Dave Peterson
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Disable autoformat of "true" and "false" text drs207 Excel Discussion (Misc queries) 6 April 14th 23 05:33 PM
=IF(VLOOKUP(C11,Group,2,FALSE)=D11,"True","Not Valid") and =IF(D1 Milky Excel Worksheet Functions 1 August 20th 08 08:38 PM
change "true" and "false" to "availble" and "out of stock" inthestands Excel Worksheet Functions 2 July 19th 07 07:05 PM
Count occurences of "1"/"0" (or"TRUE"/"FALSE") in a row w. conditions in the next BCB New Users to Excel 7 May 13th 06 10:02 PM
IF(VLOOKUP("MYDATA", MYNAME, 4) = 0, "TRUE", "FALSE") Souris Excel Programming 2 August 17th 05 05:33 AM


All times are GMT +1. The time now is 04:14 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright 2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"