0

I have a checkbox that will run this macro when checked. The check box is in sheet1 and it will hide row 11 in sheet2. How do I write this code so I do not have to bounce back and forth between sheets?

Sub Hide_HeaterTreater_Rows()

  Sheets("NSR Report").Select
  Range("11:11").Select
If Selection.EntireRow.Hidden = False Then
  Selection.EntireRow.Hidden = True
Else
  Selection.EntireRow.Hidden = False
  End If

Sheets("NSR FORM").Select

End Sub
pnuts
  • 58,317
  • 11
  • 87
  • 139
David Van der Vieren
  • 265
  • 4
  • 11
  • 25

2 Answers2

3

Seems kind of odd to be toggling visibility with a checkbox: I would think it would be better to use the checkbox's value to set the visibility...

Sub Hide_HeaterTreater_Rows()
  With Sheets("NSR Report").Rows(11).EntireRow  
    .Hidden = Not .Hidden
  End With
End Sub

EDIT: multiple rows

Sub Hide_HeaterTreater_Rows()
  With Sheets("NSR Report").Range("11:11,24:24").EntireRow  
    .Hidden = Not .Hidden
  End With
End Sub
Tim Williams
  • 154,628
  • 8
  • 97
  • 125
0
Sub Hide_HeaterTreater_Rows()
    Sheets("NSR Report").Rows(11).EntireRow.Hidden = Not Sheets("NSR Report").Rows(11).EntireRow.Hidden
End Sub

But I think you may want to use

Sub Hide_HeaterTreater_Rows()
    Sheets("NSR Report").Rows(11).EntireRow.Hidden = Sheets("NSR FORM").Shapes("CheckBox1").Value
End Sub
user2140261
  • 7,855
  • 7
  • 32
  • 45