Home |
Search |
Today's Posts |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Dear Tom,
I'm getting this run time error '1004' - application defined or object defined error and some times run timr error '1004' - unable to set the locked property for the range class Please Help. here is my code. On Wrokbook Open :- Dim I As Integer Dim J As Integer Dim LastLine As Integer Private Sub Workbook_Open() For I = 4 To 500 If Sheet6.Cells(I, 1).Value = "-" Then LastLine = I 'MsgBox LastLine Exit For End If Next I Sheet6.Unprotect Password:="123" Sheet6.Cells(1, 6).Value = Date Sheet6.Range(Cells(1, 1), Cells(2, 256)).Locked = True For I = 3 To LastLine - 1 Sheet6.Cells(I, 7).Locked = True Next I For I = 3 To LastLine - 1 For J = 9 To 38 Sheet6.Cells(I, J).Locked = True Next J Next I For I = 3 To LastLine - 1 For J = 9 To 13 If Sheet6.Cells(I, 8).Value = "" Or Sheet6.Cells(I, 8).Value = "NR" Then Sheet6.Cells(I, J).Locked = True Else Sheet6.Cells(I, J).Locked = False End If Next J Next I For I = 4 To LastLine Step 2 Sheet6.Cells(I, 9).Locked = True Sheet6.Cells(I, 10).Locked = True Next I Sheet6.Range(Cells(3, 39), Cells(LastLine, 256)).Locked = True Sheet6.Range(Cells(LastLine, 1), Cells(65536, 256)).Locked = True Sheet6.Protect Password:="123", AllowFiltering:=True End Sub On Worksheet Change :- Dim I As Integer Dim Material As String Dim Response As String Dim Msg As String Dim SiteName As String Private Sub Worksheet_Change(ByVal Target As Range) If Target.Row Mod 2 = 0 Then Material = "SHELTER" SiteName = Cells(Target.Row - 1, 5).Value Else Material = "TOWER" SiteName = Cells(Target.Row, 5).Value End If If Target.Column = 8 Then Me.Unprotect Password:="123" Select Case (Target) Case "": MsgBox "SORRY. YOU SHOULD ENTER EITHER REQ. / NR IN THIS CELL.", vbCritical, "ERROR" Case "NR": Msg = "ARE YOU SURE " & SiteName & "'S " & Material & " IS NOT REQUIRED?. IF YOU CLICK 'YES' THEN YOU CAN NOT CHANGE THE VALUES BACK AGAIN." Response = MsgBox(Msg, vbYesNo, "CONFIRM MATERIAL NOT REQUIRED") If Response = vbYes Then For I = 9 To 38 Cells(Target.Row, I).Value = "NR" Cells(Target.Row, I).Locked = True Next I Else Target.Value = "REQ." End If Case "REQ.": If Material = "TOWER" Then Cells(Target.Row, 9).Locked = False Cells(Target.Row, 9).Value = "-" Cells(Target.Row, 13).Value = "ND" Msg = "PLEASE ENTER THE TOWER TYPE." MsgBox Msg, vbInformation, "ENTER TOWER TYPE" Else Cells(Target.Row, 11).Locked = False Cells(Target.Row, 11).Value = "-" Cells(Target.Row, 13).Value = "ND" Msg = "PLEASE ENTER THE SHELTER SUPPLY VENDOR NAME." MsgBox Msg, vbInformation, "ENTER SUPPLY VENDOR NAME" End If End Select Me.Protect Password:="123", AllowFiltering:=True End If If Target.Column = 9 Then Me.Unprotect Password:="123" Select Case (Target) Case "-": 'DO NOTHING Case "NR": If Cells(Target.Row, 8).Value = "REQ." Then Target.Value = "-" Cells(Target.Row, 10).Value = "-" End If Case "GBT", "RTT", "POLE", "DELTA": Cells(Target.Row, 10).Locked = False Cells(Target.Row, 10).Value = "-" Msg = "PLEASE ENTER THE TOWER HEIGHT." MsgBox Msg, vbInformation, "ENTER TOWER HEIGHT" Case Else: Target.Value = "-" Cells(Target.Row, 10).Value = "-" End Select Me.Protect Password:="123", AllowFiltering:=True End If If Target.Column = 10 Then Me.Unprotect Password:="123" If Cells(Target.Row, 9).Value = "-" And Target < "-" Then Msg = "PLEASE ENTER THE TOWER TYPE DATA FIRST." MsgBox Msg, vbInformation, "DATA UNACCEPTANCE" Target.Value = "-" Else Select Case (Target) Case "": Target.Value = "-" Msg = "PLEASE ENTER THE TOWER HEIGHT." MsgBox Msg, vbInformation, "ENTER TOWER HEIGHT" Case "-": 'DO NOTHING Case "NR": If Cells(Target.Row, 8).Value = "REQ." Then Target.Value = "-" Cells(Target.Row, 11).Value = "-" End If Case Is <= 21: If Cells(Target.Row, 9).Value = "GBT" Then Msg = "INVALID TOWER HEIGHT." MsgBox Msg, vbCritical, "INVALID DATA ENTRY" Target.Value = "-" Else Cells(Target.Row, 11).Value = "-" Cells(Target.Row, 11).Locked = False Msg = "PLEASE ENTER THE TOWER SUPPLY VENDOR NAME." MsgBox Msg, vbInformation, "ENTER SUPPLY VENDOR NAME" End If Case Is 21: If Cells(Target.Row, 9).Value < "GBT" Then Msg = "INVALID TOWER HEIGHT." MsgBox Msg, vbCritical, "INVALID DATA ENTRY" Target.Value = "-" Else Cells(Target.Row, 11).Value = "-" Cells(Target.Row, 11).Locked = False Msg = "PLEASE ENTER THE TOWER SUPPLY VENDOR NAME." MsgBox Msg, vbInformation, "ENTER SUPPLY VENDOR NAME" End If Case Else: Target.Value = "-" Cells(Target.Row, 11).Value = "-" End Select End If Me.Protect Password:="123", AllowFiltering:=True End If If Target.Column = 11 Then Me.Unprotect Password:="123" Select Case (Target) Case "-": 'DO NOTHING Case "", " ", "NA": Msg = "DON'T FORGET TO ENTER THE SUPPLY VENDOR NAME LATER." MsgBox Msg, vbInformation, "INFORMATION" Target.Value = "-" Case "NR": If Cells(Target.Row, 8).Value = "REQ." Then Target.Value = "-" End If Case Else: Cells(Target.Row, 12).Locked = False Cells(Target.Row, 12).Value = "-" Msg = "PLEASE ENTER THE ERECTION VENDOR NAME." MsgBox Msg, vbInformation, "ENTER ERECTION VENDOR NAME" End Select Me.Protect Password:="123", AllowFiltering:=True End If End Sub Please Help me at the earliest. Also if you wish give me your email id so that I can get in touch with you more easy way. My email id is Sriram |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Restrict data entry in a cell | Excel Worksheet Functions | |||
lock cell conditional format but not restrict data entry | Excel Worksheet Functions | |||
How can I restrict a cell(s) to alpha-only data entry? | Excel Discussion (Misc queries) | |||
Restrict Data Entry to only 4 possible entries | Excel Programming | |||
can i restrict data entry from certain columns | Excel Discussion (Misc queries) |