Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I'm staring over with this post, and see if I can explain
it another way. This procedure is taking a user choice from an option button and attempting to assign a predefined print range from the choice a user selects from one of five option buttons. I do know from stepping through this procedure that the object printoption is taking on a value from the line "printoption = myoption.caption" as shown below. However, when it gets down to the cases, and attempts to set the object "Printthisrange", it apparently isn't happening like it should. Therefore, when the procedure gets down to the line "Printthisrange.select", it acts as if Printthisrange was never populated, which it wasn't according to the debug watch I put on this range. I have played with it and Steve Bell has tried to help, but it still doesn't work, so I just thought it might help if I posted all I know about what is happening and what is not happening. Hope this help so someone can diagnose the problem I am having. __________________________________________________ _________ Private Sub btnprint1_Click() Dim myOption As Control Dim Printoption Dim Printthisrange As Range For Each myOption In Frame1.Controls If myOption.Value = True Then Printoption = myOption.Caption End If Next myOption Select Case Printoption Case 1 Printoption = "Cantera Natural Gas" Set Printthisrange = Range("OBACGG") Case 2 Printoption = "DEFS" Set Printthisrange = Range("OBADEFS") Case 3 Printoption = "Agave" Set Printthisrange = Range("OBAAgave") Case 4 Printoption = "TWML" Set Printthisrange = Range("OBATWML") Case 5 Printoption = "Print All OBA Pages" End Select With ActiveSheet.PageSetup .PrintTitleRows = "" .PaperSize = xlPaperLegal .FitToPagesWide = 1 .FitToPagesTall = 1 .Orientation = xlLandscape .FitToPagesWide = 1 .FitToPagesTall = 1 End With Printthisrange.Select Unload Me Selection.PrintPreview Set Printthisrange = Nothing Range("a1").Select End Sub |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Bruce,
Guess I wasn't clear - Instead of Case 1, Case 2 .... You want Case "Cantera Natural Gas", Case "DEFS", etc. And you can get rid of each of the Printoption = .... lines I am not sure what to put in for all pages. Also OBACGG, OBADEFS, OBAAgave, OBATWML MUST be defined names on the worksheet! This works for me... steve --------------------------------------------------- Select Case Printoption Case "Cantera Natural Gas" Set Printthisrange = Range("OBACGG") Case "DEFS" Set Printthisrange = Range("OBADEFS") Case "Agave" Set Printthisrange = Range("OBAAgave") Case "TWML" Set Printthisrange = Range("OBATWML") Case "Print All OBA Pages" Set Printthisrange = Range(????????) End Select "Bruce Roberson" wrote in message ... I'm staring over with this post, and see if I can explain it another way. This procedure is taking a user choice from an option button and attempting to assign a predefined print range from the choice a user selects from one of five option buttons. I do know from stepping through this procedure that the object printoption is taking on a value from the line "printoption = myoption.caption" as shown below. However, when it gets down to the cases, and attempts to set the object "Printthisrange", it apparently isn't happening like it should. Therefore, when the procedure gets down to the line "Printthisrange.select", it acts as if Printthisrange was never populated, which it wasn't according to the debug watch I put on this range. I have played with it and Steve Bell has tried to help, but it still doesn't work, so I just thought it might help if I posted all I know about what is happening and what is not happening. Hope this help so someone can diagnose the problem I am having. __________________________________________________ _________ Private Sub btnprint1_Click() Dim myOption As Control Dim Printoption Dim Printthisrange As Range For Each myOption In Frame1.Controls If myOption.Value = True Then Printoption = myOption.Caption End If Next myOption Select Case Printoption Case 1 Printoption = "Cantera Natural Gas" Set Printthisrange = Range("OBACGG") Case 2 Printoption = "DEFS" Set Printthisrange = Range("OBADEFS") Case 3 Printoption = "Agave" Set Printthisrange = Range("OBAAgave") Case 4 Printoption = "TWML" Set Printthisrange = Range("OBATWML") Case 5 Printoption = "Print All OBA Pages" End Select With ActiveSheet.PageSetup .PrintTitleRows = "" .PaperSize = xlPaperLegal .FitToPagesWide = 1 .FitToPagesTall = 1 .Orientation = xlLandscape .FitToPagesWide = 1 .FitToPagesTall = 1 End With Printthisrange.Select Unload Me Selection.PrintPreview Set Printthisrange = Nothing Range("a1").Select End Sub |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Well, you would of thought that would be the end of this
problem. However...... Printthisrange still refused to work with this approach so..... I got some more help and I have gotten a little farther with the following procedure. Private Sub btnprint1_Click() Dim Printthisrange Select Case True Case OptCNGOBA.Value Set Printthisrange = Range("OBACGG") Case OptDEFSOBA.Value Set Printthisrange = Range("OBADEFS") Case OptAgaveOBA.Value Set Printthisrange = Range("OBAAgave") Case OptTWMLOBA.Value Set Printthisrange = Range("OBATWML") This way it tests for a true value on the option button, and then it actually set the printrange like it was supposed to. The rest of the procedure is what I'm experimenting with right now. I can get it to print preview the range, but I am having trouble with the fact that each range is on a separate sheet, and I need to select either the range or the worksheet so I can do a with statement for the formatting. For some reason, the statement "Printthisrange.select" sometimes refuses to select as I select it when testing it with each option. It just gives me this run time error '1004': and then the next line of the box says "Select method of Range class failed" Maybe I have to hold my tongue a certain way perhaps for this to work on each time? This is the full procedure as I have it now: Private Sub btnprint1_Click() Dim Printthisrange Select Case True Case OptCNGOBA.Value Set Printthisrange = Range("OBACGG") Case OptDEFSOBA.Value Set Printthisrange = Range("OBADEFS") Case OptAgaveOBA.Value Set Printthisrange = Range("OBAAgave") Case OptTWMLOBA.Value Set Printthisrange = Range("OBATWML") End Select Printthisrange.Select 'With Worksheets(Printthisrange.Parent.bane).PageSetup ' .PrintTitleRows = "" ' .PaperSize = xlPaperLegal ' .FitToPagesWide = 1 ' .FitToPagesTall = 1 ' .Orientation = xlLandscape 'End With Unload Me Printthisrange.PrintPreview Printthisrange = "Nothing" Range("a1").Select End Sub |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Formula for Cases=144 * # of Cases + Pieces | Excel Discussion (Misc queries) | |||
Used to be able to attach range of labels to xy coordinates - no m | Charts and Charting in Excel | |||
Print Word Object in Excel | Excel Discussion (Misc queries) | |||
Excel Addin:Setting the range to the Excel.Range object range prop | Excel Worksheet Functions | |||
Print Macro : Object not set | Excel Programming |