S
Sriram
Dear Friends,
I'm getting the run time error '1004' - Application defined or Object
defined and some times run time error '1104' - unable to set the locked
property for the range class.
here is my code. kidnly help me at the earliest.
Workbook Open code:-
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
Worksheet Change Code:-
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
Thanks,
Sriram
I'm getting the run time error '1004' - Application defined or Object
defined and some times run time error '1104' - unable to set the locked
property for the range class.
here is my code. kidnly help me at the earliest.
Workbook Open code:-
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
Worksheet Change Code:-
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
Thanks,
Sriram