Hi,
I have form that has VBA code in it that: allows users to make a selection which determines which rows they see, calculates when a certain cell has a total of more than 100% and resizes rows depending on text entered. All three work perfectly.
The problem arises when I try to protect the workbook. Once I do that, I get the following error message when the user makes a choice about what rows they see. Then i get the following message: runtime error 1004 unable to set the hidden property of the range class.
See VBA below.
Any suggestions?
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("B6").Value = "Individual Contributor - No direct reports" Then
Rows("98:106").EntireRow.Hidden = True
ElseIf Range("B6").Value = "Management - Has direct reports" Then
Rows("98:106").EntireRow.Hidden = False
End If
If Range("D64") > 100 Then
MsgBox "Percentage exceeds 100"
End If
Dim NewRwHt As Single
Dim cWdth As Single, MrgeWdth As Single
Dim c As Range, cc As Range
Dim ma As Range
With Target
If .MergeCells And .WrapText Then
Set c = Target.Cells(1, 1)
cWdth = c.ColumnWidth
Set ma = c.MergeArea
For Each cc In ma.Cells
MrgeWdth = MrgeWdth + cc.ColumnWidth
Next
Application.ScreenUpdating = False
ma.MergeCells = False
c.ColumnWidth = MrgeWdth
c.EntireRow.AutoFit
NewRwHt = c.RowHeight
c.ColumnWidth = cWdth
ma.MergeCells = True
ma.RowHeight = NewRwHt
cWdth = 0: MrgeWdth = 0
Application.ScreenUpdating = True
End If
End With
End Sub
I have form that has VBA code in it that: allows users to make a selection which determines which rows they see, calculates when a certain cell has a total of more than 100% and resizes rows depending on text entered. All three work perfectly.
The problem arises when I try to protect the workbook. Once I do that, I get the following error message when the user makes a choice about what rows they see. Then i get the following message: runtime error 1004 unable to set the hidden property of the range class.
See VBA below.
Any suggestions?
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("B6").Value = "Individual Contributor - No direct reports" Then
Rows("98:106").EntireRow.Hidden = True
ElseIf Range("B6").Value = "Management - Has direct reports" Then
Rows("98:106").EntireRow.Hidden = False
End If
If Range("D64") > 100 Then
MsgBox "Percentage exceeds 100"
End If
Dim NewRwHt As Single
Dim cWdth As Single, MrgeWdth As Single
Dim c As Range, cc As Range
Dim ma As Range
With Target
If .MergeCells And .WrapText Then
Set c = Target.Cells(1, 1)
cWdth = c.ColumnWidth
Set ma = c.MergeArea
For Each cc In ma.Cells
MrgeWdth = MrgeWdth + cc.ColumnWidth
Next
Application.ScreenUpdating = False
ma.MergeCells = False
c.ColumnWidth = MrgeWdth
c.EntireRow.AutoFit
NewRwHt = c.RowHeight
c.ColumnWidth = cWdth
ma.MergeCells = True
ma.RowHeight = NewRwHt
cWdth = 0: MrgeWdth = 0
Application.ScreenUpdating = True
End If
End With
End Sub