Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
  • Avatar do usuário
Por eloirfabio
Posts
#22444
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.
Você não está autorizado a ver ou baixar esse anexo.
#22453
Boa tarde!!

Tente algo assim:
Código: Selecionar todos
Private 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
#22458
após alguns testes verifiquei que o código acima apresentava erros, sendo assim desenvolvi esse novo:
Código: Selecionar todos
Private 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
Por eloirfabio
Posts
#22463
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.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord