rafra Postado Junho 2, 2020 Denunciar Share Postado Junho 2, 2020 Olá.. preciso de uma fórmula VBA para ocultar linhas (A8:A28) de uma planilha (A8:I28) quando as células da coluna "i" estiverem vazias. Alguém pode me ajudar? Citar Link para o comentário Compartilhar em outros sites More sharing options...
1 Jahezer Franciz Capelari Postado Junho 2, 2020 Denunciar Share Postado Junho 2, 2020 Ola rafra, veja se o código abaixo te ajuda. Estou anexando um GIF que mostra o resultado obtido ao aplicar o código abaixo. Dessa forma é possível fazer com que as linhas sejam exibidas ou não, de acordo com o preenchimento em determinada célula que pode ser adequada por intermédio do código. O código abaixo deverá ser inserido seguindo os passos abaixo: 1. Com o Excel aberto, 2. Pressione Alt+F11 3. No lado esquerdo estará o Projeto - VBAProject 4. Abra a pasta Microsoft Excel Objetos 5. Clique duas vezes em EstaPasta_de_trabalho 6. Cole o código abaixo 7. No código defini o nome da guia para reconhecimento com o nome "Ocultar" (altere para o nome da sua guia) 8. Defini a célula que deve estar preenchida (ou não) na variável vLinhas_ColunaI, caso seja outra célula, altere o range definido. 9. Se manter esse código, adeque o nome da guia e preencha ou não a célula I7 que o efeito será aplicado conforme o GIF. ' vgLoop = Usado para estrutura de repetição. Dim vgLoop As Long Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) ' vLinhas_ColunaI = Usado para definir quais linhas da coluna I deverão ser verificadas caso ocorra alteração. ' vRow = Usado para varrer todas as linhas do RANGE que será definido na variável vLinhas_ColunaI. Dim vLinhas_ColunaI As Range Dim vRow As Variant Set vLinhas_ColunaI = Range("I7") ' Valida apenas se ocorreu alteração no range acima. If Not Intersect(Range(Target.AddressLocal), vLinhas_ColunaI) Is Nothing Then ' Varre todas as linhas do range. For Each vRow In vLinhas_ColunaI.Rows ' Caso alguma linha contenha informação, então exibe as linhas. If vRow.Value2 <> "" And IsNull(vRow.Value2) = False Then Call fsOcultarLinhas("Ocultar", True) ' Finaliza execução da SUB. Exit Sub End If Next ' Se chegou até aqui, então na estrutura FOR não foi encontrado nenhum valor preenchido. Logo, oculta as linhas. Call fsOcultarLinhas("Ocultar") End If End Sub Sub fsOcultarLinhas(ByVal vpNomeGuia As String, Optional ByVal vpExibirLinhas As Boolean = False) ' vpNomeGuia = Nome da guia que terá as células ocultas. ' vpExibirLinhas = Define se deve ser exibido ou não as linhas caso seja necessário (TRUE se sim, FALSE se não). ' Variável OPCIONAL com valor padrão = FALSE. ' Seleciona a guia. Sheets(vpNomeGuia).Select ' Seleciona as linhas Rows("8:28").Select ' Define se oculta ou não as linhas de acordo com o vpExibirLinhas. If vpExibirLinhas = True Then Selection.EntireRow.Hidden = False Else Selection.EntireRow.Hidden = True End If End Sub Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
rafra
Olá.. preciso de uma fórmula VBA para ocultar linhas (A8:A28) de uma planilha (A8:I28) quando as células da coluna "i" estiverem vazias.
Alguém pode me ajudar?
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.