Eu tentaria mudar
ElseIf c.Value = 1 Then
para
ElseIf c.Value <> 0 Then
No momento, ele está verificando especificamente as células que contêm 0 no primeiro caso, ou 1 no elseif, e eu suponho que você queira que ele se esconda em 0 e mostre tudo que não seja zero