#1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 45
Default VBA ERROR

I have this function in VBA but I get an error everytime:

When I try to run it I get an error saying "Block If without End if"

My very last function ends with:

End If

End Sub

But if I take the end sub out I get an error that reads" Expected end Sub"

???

Private Sub CommandButton1_Click()

If Range("AB54") 0 Then
Range("Z48:AC59").Select
ActiveSheet.PageSetup.PrintArea = "$Z$48:$AC$59"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

If Range("AB65") 0 Then
Range("Z60:AC71").Select
ActiveSheet.PageSetup.PrintArea = "$Z$60:$AC$71"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

If Range("AB80") 0 Then
Range("Z73:AC86").Select
ActiveSheet.PageSetup.PrintArea = "$Z$73:$AC$86"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End If

End Sub
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 120
Default VBA ERROR

Private Sub CommandButton1_Click()

If Range("AB54") 0 Then
Range("Z48:AC59").Select
ActiveSheet.PageSetup.PrintArea = "$Z$48:$AC$59"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True


Missing end if here.


If Range("AB65") 0 Then
Range("Z60:AC71").Select
ActiveSheet.PageSetup.PrintArea = "$Z$60:$AC$71"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True


Missing end if here.

If Range("AB80") 0 Then
Range("Z73:AC86").Select
ActiveSheet.PageSetup.PrintArea = "$Z$73:$AC$86"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End If

End Sub


I have noted where you are missing the end ifs. Unless of course you
mean to use Elseif (see below)

Private Sub CommandButton1_Click()

If Range("AB54") 0 Then
Range("Z48:AC59").Select
ActiveSheet.PageSetup.PrintArea = "$Z$48:$AC$59"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True


ElseIf Range("AB65") 0 Then
Range("Z60:AC71").Select
ActiveSheet.PageSetup.PrintArea = "$Z$60:$AC$71"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

ElseIf Range("AB80") 0 Then
Range("Z73:AC86").Select
ActiveSheet.PageSetup.PrintArea = "$Z$73:$AC$86"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End If

End Sub


Cheers,
Jason Lepack
  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default VBA ERROR

Every If-Then grouping needs its own End If. However, there is also a
question of intent that needs to be answered. Is the intent for each of
those If-Then groupings to run independently of the others? If so, then your
code should look like this....

Private Sub CommandButton1_Click()
If Range("AB54") 0 Then
Range("Z48:AC59").Select
ActiveSheet.PageSetup.PrintArea = "$Z$48:$AC$59"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End If

If Range("AB65") 0 Then
Range("Z60:AC71").Select
ActiveSheet.PageSetup.PrintArea = "$Z$60:$AC$71"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End If

If Range("AB80") 0 Then
Range("Z73:AC86").Select
ActiveSheet.PageSetup.PrintArea = "$Z$73:$AC$86"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End If
End Sub

However, if the intent is for the 2nd If-Then grouping to run ONLY if the
first If-Then statement is True and the 3rd If-Then grouping to run ONLY if
the 2nd one is True, then the code would look like this instead...

Private Sub CommandButton1_Click()
If Range("AB54") 0 Then
Range("Z48:AC59").Select
ActiveSheet.PageSetup.PrintArea = "$Z$48:$AC$59"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

If Range("AB65") 0 Then
Range("Z60:AC71").Select
ActiveSheet.PageSetup.PrintArea = "$Z$60:$AC$71"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

If Range("AB80") 0 Then
Range("Z73:AC86").Select
ActiveSheet.PageSetup.PrintArea = "$Z$73:$AC$86"
ActiveWindow.SelectedSheets.PrintOut Copies:=1,
Collate:=True
End If

End If

End If
End Sub

Notice the placement of the End If statements in each example. The placement
of those statements governs the code that will be executed and when. They
are very important and I think you will find proper indenting of nested
blocks will make placing them easier.

Rick


"Hamed parhizkar" wrote in
message ...
I have this function in VBA but I get an error everytime:

When I try to run it I get an error saying "Block If without End if"

My very last function ends with:

End If

End Sub

But if I take the end sub out I get an error that reads" Expected end Sub"

???

Private Sub CommandButton1_Click()

If Range("AB54") 0 Then
Range("Z48:AC59").Select
ActiveSheet.PageSetup.PrintArea = "$Z$48:$AC$59"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

If Range("AB65") 0 Then
Range("Z60:AC71").Select
ActiveSheet.PageSetup.PrintArea = "$Z$60:$AC$71"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

If Range("AB80") 0 Then
Range("Z73:AC86").Select
ActiveSheet.PageSetup.PrintArea = "$Z$73:$AC$86"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End If

End Sub


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
Counting instances of found text (Excel error? Or user error?) S Davis Excel Worksheet Functions 5 September 12th 06 04:52 PM
Error Handling - On Error GoTo doesn't trap error successfully David Excel Programming 9 February 16th 06 05:59 PM
Form Err.Raise error not trapped by entry procedure error handler [email protected] Excel Programming 1 February 8th 06 10:19 AM
Automation Error, Unknown Error. Error value - 440 Neo[_2_] Excel Programming 0 May 29th 04 05:26 AM


All times are GMT +1. The time now is 11:27 PM.

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

About Us

"It's about Microsoft Excel"