Not sure if Button17_Click is supposed to do anything, since there's no Sheet1 in the workbook
I'd change Button46_Click a little
Sub Button46_Click()
Dim r1 As Range, r2 As Range, c As Range
Application.ScreenUpdating = False
With Sheet20
.Unprotect
.Rows.Hidden = False
Set r1 = .Range("b5")
Set r2 = .Cells(.Rows.Count, 2).End(xlUp)
For Each c In Range(r1, r2).Cells
If Len(c.Text) = 0 Then c.EntireRow.Hidden = True
Next
.Protect DrawingObjects:=False, Contents:=True, Scenarios:=False, _
AllowFormattingRows:=True, AllowInsertingRows:=True, AllowDeletingRows:=True, _
AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True
End With
Application.ScreenUpdating = True
End Sub