ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Need to break up my SheetSelectionChange routine (https://www.excelbanter.com/excel-programming/441178-need-break-up-my-sheetselectionchange-routine.html)

ordnance1[_2_]

Need to break up my SheetSelectionChange routine
 
I have 72 sets of the code below (each one is different) for each week of my
6 week calendar, for a total of 432 sets. I now get a compile error
"Procedure to Large". So what I would like to do is create a module for each
week and then refer to the module in the SheetSelectionChange routine. Is
this possible and if so how do I edit the code below so that it will work in
that situation?



If Range("C4") = "" Then
If Not Intersect(Target, Range("B5:C48")) Is Nothing Then
MsgBox "You have selected a day that is not available for
vacation. Please reselect."
Range("A3").Select
End
End If
End If


Rick Rothstein

Need to break up my SheetSelectionChange routine
 
How are they different? It may possible to condense your code dramatically
depending on what the actual difference are. Can you give us a sample of 5
or 6 **consecutive** sets so we can see if there is a pattern to your sets?

--
Rick (MVP - Excel)



"ordnance1" wrote in message
...
I have 72 sets of the code below (each one is different) for each week of
my 6 week calendar, for a total of 432 sets. I now get a compile error
"Procedure to Large". So what I would like to do is create a module for
each week and then refer to the module in the SheetSelectionChange
routine. Is this possible and if so how do I edit the code below so that
it will work in that situation?



If Range("C4") = "" Then
If Not Intersect(Target, Range("B5:C48")) Is Nothing Then
MsgBox "You have selected a day that is not available for
vacation. Please reselect."
Range("A3").Select
End
End If
End If



ordnance1[_2_]

Need to break up my SheetSelectionChange routine
 
'Sunday Day

'Office

If Range("Q7") = 0 Then
If Not Intersect(Target, Range("B5:C9")) Is Nothing Then
MsgBox "You have selected a day that is not
available for vacation. Please reselect."
Range("A3").Select
End
End If
End If

If Range("Q7") = 1 Then
If Not Intersect(Target, Range("B6:C9")) Is Nothing Then
MsgBox "You have selected a day that is not
available for vacation. Please reselect."
Range("A3").Select
End
End If
End If

If Range("Q7") = 2 Then
If Not Intersect(Target, Range("B7:C9")) Is Nothing Then
MsgBox "You have selected a day that is not
available for vacation. Please reselect."
Range("A3").Select
End
End If
End If

If Range("Q7") = 3 Then
If Not Intersect(Target, Range("B8:C9")) Is Nothing Then
MsgBox "You have selected a day that is not
available for vacation. Please reselect."
Range("A3").Select
End
End If
End If

If Range("Q7") = 4 Then
If Not Intersect(Target, Range("B9:C9")) Is Nothing Then
MsgBox "You have selected a day that is not
available for vacation. Please reselect."
Range("A3").Select
End
End If
End If


"Rick Rothstein" wrote in message
...
How are they different? It may possible to condense your code dramatically
depending on what the actual difference are. Can you give us a sample of 5
or 6 **consecutive** sets so we can see if there is a pattern to your
sets?

--
Rick (MVP - Excel)



"ordnance1" wrote in message
...
I have 72 sets of the code below (each one is different) for each week of
my 6 week calendar, for a total of 432 sets. I now get a compile error
"Procedure to Large". So what I would like to do is create a module for
each week and then refer to the module in the SheetSelectionChange
routine. Is this possible and if so how do I edit the code below so that
it will work in that situation?



If Range("C4") = "" Then
If Not Intersect(Target, Range("B5:C48")) Is Nothing Then
MsgBox "You have selected a day that is not available for
vacation. Please reselect."
Range("A3").Select
End
End If
End If



Rick Rothstein

Need to break up my SheetSelectionChange routine
 
Based on the pattern I see so far, **all** of your code for Range("Q7")
values greater than or equal to 0 and less than or equal to 4 (maybe even
less than or equal to 5 depending on whether is a valid value for Q7 to
contain) can be replaced with this single code set...

If Not Intersect(target, Range(Range("B5").Offset( _
Range("Q7")), Range("C9"))) Is Nothing Then
MsgBox "You have selected a day that is not " & _
"available for vacation. Please reselect."
Range("A3").Select
Exit Sub
End If

The rest of your sets can probably be condensed as well, either individually
or perhaps into a single modification of the above set, but that is hard to
say without seeing the rest of your sets and what patterns they contain. Can
you copy/paste all 72 of your sets (or is it 432... I'm still not quite sure
of your layout) for this SheetSelectionChange event procedure into a
response to this message so we can see what else can be done?

--
Rick (MVP - Excel)



"ordnance1" wrote in message
...
'Sunday Day

'Office

If Range("Q7") = 0 Then
If Not Intersect(Target, Range("B5:C9")) Is Nothing
Then
MsgBox "You have selected a day that is not
available for vacation. Please reselect."
Range("A3").Select
End
End If
End If

If Range("Q7") = 1 Then
If Not Intersect(Target, Range("B6:C9")) Is Nothing
Then
MsgBox "You have selected a day that is not
available for vacation. Please reselect."
Range("A3").Select
End
End If
End If

If Range("Q7") = 2 Then
If Not Intersect(Target, Range("B7:C9")) Is Nothing
Then
MsgBox "You have selected a day that is not
available for vacation. Please reselect."
Range("A3").Select
End
End If
End If

If Range("Q7") = 3 Then
If Not Intersect(Target, Range("B8:C9")) Is Nothing
Then
MsgBox "You have selected a day that is not
available for vacation. Please reselect."
Range("A3").Select
End
End If
End If

If Range("Q7") = 4 Then
If Not Intersect(Target, Range("B9:C9")) Is Nothing
Then
MsgBox "You have selected a day that is not
available for vacation. Please reselect."
Range("A3").Select
End
End If
End If


"Rick Rothstein" wrote in message
...
How are they different? It may possible to condense your code
dramatically depending on what the actual difference are. Can you give us
a sample of 5 or 6 **consecutive** sets so we can see if there is a
pattern to your sets?

--
Rick (MVP - Excel)



"ordnance1" wrote in message
...
I have 72 sets of the code below (each one is different) for each week
of my 6 week calendar, for a total of 432 sets. I now get a compile
error "Procedure to Large". So what I would like to do is create a
module for each week and then refer to the module in the
SheetSelectionChange routine. Is this possible and if so how do I edit
the code below so that it will work in that situation?



If Range("C4") = "" Then
If Not Intersect(Target, Range("B5:C48")) Is Nothing Then
MsgBox "You have selected a day that is not available for
vacation. Please reselect."
Range("A3").Select
End
End If
End If




All times are GMT +1. The time now is 12:01 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com