Ir para conteúdo

A partir do dia 19/11/2018, o foco do Fórum do BABOO é apenas Windows e Segurança Digital conforme informado no início de 2018.
As áreas que não têm relação com esses dois assuntos foram arquivadas e seus tópicos estão disponíveis para consulta na área Tópicos Antigos.

César Seizo

VBA de exibir/ocultar linhas não funciona.

Mensagem Recomendada

Boa noite!

Tenho uma linha de programação do VBA que condiciona exibir ou ocultar algumas linhas de acordo com o valor de quatro células mescladas.

Utilizei a seguinte sintaxe, entretanto não tive resultado algum, embora tenha usado anteriormente em outra planilha:

Private Sub Tipo_Apolice()
If Range("F37").Value = "" Then
Rows("38:42").EntireRow.Hidden = True
End If
If Range("F37").Value = "Apólice Anual" Then
Rows("38:40").EntireRow.Hidden = True
Rows("41").EntireRow.Hidden = False
Rows("42").EntireRow.Hidden = False
End If
If Range("F37").Value = "Contrato Específico" Then
Rows("38:42").EntireRow.Hidden = False
End If
End Sub

Sabem me dizer onde estou errando?

Para dar mais detalhes, o conteúdo da célula "F37" (Apólice Anual ou Contrato Específico) é informado por meio de uma lista dropdown (Validação de Dados).

Além disso, o range inicia-se na F37 e vai até a I37.

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Experimente:

Sub Tipo_Apolice()
 Rows("38:42").EntireRow.Hidden = False
  If Range("F37").Value = "" Then
   Rows("38:42").EntireRow.Hidden = True
  ElseIf Range("F37").Value = "Apólice Anual" Then
   Rows("38:40").EntireRow.Hidden = True
  End If
End Sub


Se não funcionar a contento disponibilize uma amostra do seu arquivo Excel com esse código acima instalado.


 

Osvaldo

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Osvaldo, boa noite!

Obrigado pela pronta resposta!

Testei em minha planilha e não obtive resultado. Acha que por ser Excel 2016 pode ter algo a ver?

De qualquer forma, envio aqui a planilha para que possa dar uma olhada, a aba em que a sintaxe está é a "Capa".

Abs,

Cálculo RCG.xlsm

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, César.

Na sua planilha há 3 botões e nenhum deles está associado à macro de interesse, então eu suponho que você quer que a macro rode automaticamente ao ser alterado o conteúdo de F37, é isso? Se sim, cole o código abaixo no módulo da planilha Capa. Se você quiser cole-o no lugar do código que lá existe Sub Tipo_Apolice(), pois este não será utilizado.

Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Cells(1).Address <> "$F$37" Then Exit Sub
 Rows("38:42").EntireRow.Hidden = False
  If Target.Cells(1).Value = "" Then
   Rows("38:42").EntireRow.Hidden = True
  ElseIf Target.Cells(1).Value = "Apólice Anual" Then
   Rows("38:40").EntireRow.Hidden = True
  End If
End Sub

obs. o código que postei antes, que foi baseado no seu código do primeiro post, funciona de forma diferente desse acima, pois para rodá-lo é necessária uma intervenção do usuário, por exemplo clicando em um botão, e ele deve ser instalado em um módulo comum e não no módulo da planilha como você o colocou.
Esse acima sim, deve ser colocado no módulo da planilha e irá rodar após alteração de conteúdo em F37.


 

Osvaldo

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×