OCULTAR/EXIBIR LINHAS AUTOMATICAMENTE
Enviado: 19 Abr 2017 às 11:57
por eloirfabio
Bom dia.
Estou fazendo uma PPP (PERFIL PROFISSIOGRÁFICO PREVIDENCIÁRIO), e preciso da seguinte solução:
- É preciso incluir os dados dos exames realizados no funcionário durante o tempo em que ficou na empresa;
- Dependendo do tempo de serviço, o mesmo pode ter realizado mais de um exame semestral/periódico;
- Como estou querendo fazer tudo de forma automatizada, queria saber se haveria uma maneira de exibir as linhas somente se eu inserir as informações, caso contrario, ficariam ocultas, sem a necessidade de intervenção manual do operador.
Coloquei um código VBA para ocultar/exibir, porém, é manual, e seria necessário criar mais uns 3 ou 4 botões, conforme a quantidade de exames.
Como sou apenas um entusiasta na área do VBA venho pedir a ajuda de vocês.
Re: OCULTAR/EXIBIR LINHAS AUTOMATICAMENTE
Enviado: 19 Abr 2017 às 14:38
por alexandrevba
Boa tarde!!
Tente algo assim:
Código: Selecionar todosPrivate Sub Worksheet_Calculate()
Dim WF As WorksheetFunction: Set WF = WorksheetFunction
Dim w1 As Worksheet: Set w1 = ActiveWorkbook.Sheets("DADOS")
Dim w2 As Worksheet: Set w2 = ActiveWorkbook.Sheets("PPP")
Application.EnableEvents = False
If WF.Sum(w1.Range("$H$12:$K$17")) = 0 Then
w2.Rows("72:95").Hidden = True
Else
w2.Rows("72:95").Hidden = False
End If
Application.EnableEvents = True
End Sub
Esse código deve ser posto dentro do
módulo de planilha
Att
Re: OCULTAR/EXIBIR LINHAS AUTOMATICAMENTE
Enviado: 19 Abr 2017 às 15:56
por luizpaps
após alguns testes verifiquei que o código acima apresentava erros, sendo assim desenvolvi esse novo:
Código: Selecionar todosPrivate Sub Worksheet_Change(ByVal Target As Range)
Dim lin As Integer
Dim ws As Worksheet
Dim ws1 As Worksheet
Application.ScreenUpdating = False
Application.EnableEvents = False
Set ws = Sheets("PPP")
Set ws1 = Sheets("Dados")
ws1.Select
If (ws1.Cells(13, 8) = "") Then
ws.Select
ws.Rows("72:77").Select
Selection.EntireRow.Hidden = True
Else
ws.Select
ws.Rows("72:77").Select
Selection.EntireRow.Hidden = False
End If
If (ws1.Cells(14, 8) = "") Then
ws.Select
ws.Rows("78:83").Select
Selection.EntireRow.Hidden = True
Else
ws.Select
ws.Rows("78:83").Select
Selection.EntireRow.Hidden = False
End If
If (ws1.Cells(15, 8) = "") Then
ws.Select
ws.Rows("84:89").Select
Selection.EntireRow.Hidden = True
Else
ws.Select
ws.Rows("84:89").Select
Selection.EntireRow.Hidden = False
End If
If (ws1.Cells(16, 8) = "") Then
ws.Select
ws.Rows("90:95").Select
Selection.EntireRow.Hidden = True
Else
ws.Select
ws.Rows("90:95").Select
Selection.EntireRow.Hidden = False
End If
ws1.Select
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
teste ai e veja se da certo
OCULTAR/EXIBIR LINHAS AUTOMATICAMENTE
Enviado: 19 Abr 2017 às 16:59
por eloirfabio
Boa tarde.
O código realmente oculta ^^, porém não de maneira esperada. Admissional e Demissional vai ter sempre, as variáveis serão as mudanças de função e exames periódicos. por exemplo: o colaborador realizou 1 exame periódico durante o tempo na empresa - irá aparecer na PPP: Admissional, Periódico e Demissional. Teve 1 uma mudança de função - Admissional, Mud. de Função e Demissional e por aí vai. As linhas serão mostradas conforme os exames realizados, se não tiver um determinado exame, ficará oculto.