Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Can any one help me with this loop. I'm trying to set the validations for a
range of cell over all the worksheets in my workbook, but for some reason it will only change the validations for the active sheet. If I change the code to something simple like "MsgBox wsheet.Name" it cycles through all the sheets. The main part of the code was copied from a recorded macro and added to the loop code. Here is the code: Sub Set_Validation_Use_By_Date() Dim wsheet As Worksheet For Each wsheet In ActiveWorkbook.Worksheets Range("L10:L169").Select With Selection.Validation .Delete .Add Type:=xlValidateDate, AlertStyle:=xlValidAlertStop, Operator:= _ xlGreater, Formula1:="=TODAY()" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "Date Error" .InputMessage = "" .ErrorMessage = _ "The date you have entered is in the past. Please check the date and enter again." .ShowInput = True .ShowError = True End With Next End Sub Any ideas would be greatly appreciated. Insp Gadget |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
You can't select a range on an inactive sheet and in fact, there is no need
to select it. For Each wsheet In ActiveWorkbook.Worksheets wsheet.Range("L10:L169").Validation .Delete 'etc. -- Vasant "Insp Gadget " <oakeypara<<REMOVE wrote in message ... Can any one help me with this loop. I'm trying to set the validations for a range of cell over all the worksheets in my workbook, but for some reason it will only change the validations for the active sheet. If I change the code to something simple like "MsgBox wsheet.Name" it cycles through all the sheets. The main part of the code was copied from a recorded macro and added to the loop code. Here is the code: Sub Set_Validation_Use_By_Date() Dim wsheet As Worksheet For Each wsheet In ActiveWorkbook.Worksheets Range("L10:L169").Select With Selection.Validation .Delete .Add Type:=xlValidateDate, AlertStyle:=xlValidAlertStop, Operator:= _ xlGreater, Formula1:="=TODAY()" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "Date Error" .InputMessage = "" .ErrorMessage = _ "The date you have entered is in the past. Please check the date and enter again." .ShowInput = True .ShowError = True End With Next End Sub Any ideas would be greatly appreciated. Insp Gadget |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Sorry, forgot the "With" in the second line.
"Vasant Nanavati" <vasantn *AT* aol *DOT* com wrote in message ... You can't select a range on an inactive sheet and in fact, there is no need to select it. For Each wsheet In ActiveWorkbook.Worksheets wsheet.Range("L10:L169").Validation .Delete 'etc. -- Vasant "Insp Gadget " <oakeypara<<REMOVE wrote in message ... Can any one help me with this loop. I'm trying to set the validations for a range of cell over all the worksheets in my workbook, but for some reason it will only change the validations for the active sheet. If I change the code to something simple like "MsgBox wsheet.Name" it cycles through all the sheets. The main part of the code was copied from a recorded macro and added to the loop code. Here is the code: Sub Set_Validation_Use_By_Date() Dim wsheet As Worksheet For Each wsheet In ActiveWorkbook.Worksheets Range("L10:L169").Select With Selection.Validation .Delete .Add Type:=xlValidateDate, AlertStyle:=xlValidAlertStop, Operator:= _ xlGreater, Formula1:="=TODAY()" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "Date Error" .InputMessage = "" .ErrorMessage = _ "The date you have entered is in the past. Please check the date and enter again." .ShowInput = True .ShowError = True End With Next End Sub Any ideas would be greatly appreciated. Insp Gadget |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I changed it slightly it should work now, try not to use "selection" if at
all possible it slows things down to much and causes unnecessary errors. Sub Set_Validation_Use_By_Date() Dim wsheet As Worksheet For Each wsheet In ActiveWorkbook.Worksheets With Range("L10:L169").Validation .Delete .Add Type:=xlValidateDate, AlertStyle:=xlValidAlertStop, Operator:= _ xlGreater, Formula1:="=TODAY()" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "Date Error" .InputMessage = "" .ErrorMessage = _ "The date you have entered is in the past. Please check the date and enter again." .ShowInput = True .ShowError = True End With Next End Sub -- Regards, Rocky McKinley "Insp Gadget " <oakeypara<<REMOVE wrote in message ... Can any one help me with this loop. I'm trying to set the validations for a range of cell over all the worksheets in my workbook, but for some reason it will only change the validations for the active sheet. If I change the code to something simple like "MsgBox wsheet.Name" it cycles through all the sheets. The main part of the code was copied from a recorded macro and added to the loop code. Here is the code: Sub Set_Validation_Use_By_Date() Dim wsheet As Worksheet For Each wsheet In ActiveWorkbook.Worksheets Range("L10:L169").Select With Selection.Validation .Delete .Add Type:=xlValidateDate, AlertStyle:=xlValidAlertStop, Operator:= _ xlGreater, Formula1:="=TODAY()" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "Date Error" .InputMessage = "" .ErrorMessage = _ "The date you have entered is in the past. Please check the date and enter again." .ShowInput = True .ShowError = True End With Next End Sub Any ideas would be greatly appreciated. Insp Gadget |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Excellent, thanks for the solution works like a charm. I've been trying to
sort this out for ages. Much appreciated!! "Rocky McKinley" wrote in message ... I changed it slightly it should work now, try not to use "selection" if at all possible it slows things down to much and causes unnecessary errors. Sub Set_Validation_Use_By_Date() Dim wsheet As Worksheet For Each wsheet In ActiveWorkbook.Worksheets With Range("L10:L169").Validation .Delete .Add Type:=xlValidateDate, AlertStyle:=xlValidAlertStop, Operator:= _ xlGreater, Formula1:="=TODAY()" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "Date Error" .InputMessage = "" .ErrorMessage = _ "The date you have entered is in the past. Please check the date and enter again." .ShowInput = True .ShowError = True End With Next End Sub -- Regards, Rocky McKinley "Insp Gadget " <oakeypara<<REMOVE wrote in message ... Can any one help me with this loop. I'm trying to set the validations for a range of cell over all the worksheets in my workbook, but for some reason it will only change the validations for the active sheet. If I change the code to something simple like "MsgBox wsheet.Name" it cycles through all the sheets. The main part of the code was copied from a recorded macro and added to the loop code. Here is the code: Sub Set_Validation_Use_By_Date() Dim wsheet As Worksheet For Each wsheet In ActiveWorkbook.Worksheets Range("L10:L169").Select With Selection.Validation .Delete .Add Type:=xlValidateDate, AlertStyle:=xlValidAlertStop, Operator:= _ xlGreater, Formula1:="=TODAY()" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "Date Error" .InputMessage = "" .ErrorMessage = _ "The date you have entered is in the past. Please check the date and enter again." .ShowInput = True .ShowError = True End With Next End Sub Any ideas would be greatly appreciated. Insp Gadget |
#6
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Instead of:
Range("L10:L169").Select With Selection.Validation Try: With wsheet.Range("L10:L169").Validation "Insp Gadget " <oakeypara<<REMOVE wrote in message ... Can any one help me with this loop. I'm trying to set the validations for a range of cell over all the worksheets in my workbook, but for some reason it will only change the validations for the active sheet. If I change the code to something simple like "MsgBox wsheet.Name" it cycles through all the sheets. The main part of the code was copied from a recorded macro and added to the loop code. Here is the code: Sub Set_Validation_Use_By_Date() Dim wsheet As Worksheet For Each wsheet In ActiveWorkbook.Worksheets Range("L10:L169").Select With Selection.Validation .Delete .Add Type:=xlValidateDate, AlertStyle:=xlValidAlertStop, Operator:= _ xlGreater, Formula1:="=TODAY()" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "Date Error" .InputMessage = "" .ErrorMessage = _ "The date you have entered is in the past. Please check the date and enter again." .ShowInput = True .ShowError = True End With Next End Sub Any ideas would be greatly appreciated. Insp Gadget |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
how can i automatically generate work order numbers from work orde | Excel Discussion (Misc queries) | |||
flash object dont work in my excel work sheet | Excel Discussion (Misc queries) | |||
Find loop doesn't loop | Excel Discussion (Misc queries) | |||
Is there away to keep "auto save" from jumping to the first work sheet in the work book? | New Users to Excel | |||
HELP!!!! Can't stop a loop (NOT an infinite loop) | Excel Programming |