none
Problemas no PROCV RRS feed

  • Pergunta

  • Eu preciso criar uma planilha com algumas informações que importei de uma outra planilha do excel, para isso utilizei o comando PROCV. O problema é que esta planilha de onde estou importando os dados tem mais de 2000 linhas e fazer isso, manualmente será muito demorado.

    Gostaria de saber se consigo automatizar esta nova planilha.

    A planilha de dados que utilizo tem as seguintes informações sequenciais:

    CHAPA NOME CR DADOS SALÁRIO ADMISSÃO SALÁRIO NOMINAL SALÁRIO MÊS DIF ABONO DE FÉRIAS (VERBA 993) REEMBOLSO TRANSPORTE (VERBA 1679) DEV. INSS (VERBA 1651) H.E. 60% HE 60% (VERBA 183) H.E. 60% + 20% Adic. Not HE 60% + 20% Adic. Not (VERBA 211) H.E. 100% HE 100% (Feriado) (VERBA 189) H.E. 100% + 20% Adic. Not. HE 100% + 20% Adic. Not. (Feriado) (VERBA 225) DSR (VERBA 0346)

    Preciso criar uma nova planilha somente com as informações:

    Chapa Nome Mês/2015 QNT HE 60% HE 60% QNT HE 60% + 20% HE 60% + 20% HE 100% QNT HE 100% QNT HE 100% + 20% HE 100% + 20% ADC% ADC Noturno

    sábado, 9 de setembro de 2017 20:19

Respostas

  • Option Explicit
    
    Private Sub Workbook_Open()
    Application.ScreenUpdating = False
    Dim MESES(1 To 12) As String
    Dim ARQUIVOS(1 To 12) As String
    MESES(1) = "JANEIRO"
    MESES(2) = "FEVEREIRO"
    MESES(3) = "MARÇO"
    MESES(4) = "ABRIL"
    MESES(5) = "MAIO"
    MESES(6) = "JUNHO"
    MESES(7) = "JULHO"
    MESES(8) = "AGOSTO"
    MESES(9) = "SETEMBRO"
    MESES(10) = "OUTUBRO"
    MESES(11) = "NOVEMBRO"
    MESES(12) = "DEZEMBRO"
    ARQUIVOS(1) = ThisWorkbook.Path & "\RESUMO FOLHA SAVIS_JAN.xls"
    ARQUIVOS(2) = ThisWorkbook.Path & "\RESUMO FOLHA SAVIS_FEV.xls"
    ARQUIVOS(3) = ThisWorkbook.Path & "\RESUMO FOLHA SAVIS_MAR.xls"
    ARQUIVOS(4) = ThisWorkbook.Path & "\RESUMO FOLHA SAVIS_ABR.xls"
    ARQUIVOS(5) = ThisWorkbook.Path & "\RESUMO FOLHA SAVIS_MAI.xls"
    ARQUIVOS(6) = ThisWorkbook.Path & "\RESUMO FOLHA SAVIS_JUN.xls"
    ARQUIVOS(7) = ThisWorkbook.Path & "\RESUMO FOLHA SAVIS_JUL.xls"
    ARQUIVOS(8) = ThisWorkbook.Path & "\RESUMO FOLHA SAVIS_AGO.xls"
    ARQUIVOS(9) = ThisWorkbook.Path & "\RESUMO FOLHA SAVIS_SET.xls"
    ARQUIVOS(10) = ThisWorkbook.Path & "\RESUMO FOLHA SAVIS_OUT.xls"
    ARQUIVOS(11) = ThisWorkbook.Path & "\RESUMO FOLHA SAVIS_NOV.xls"
    ARQUIVOS(12) = ThisWorkbook.Path & "\RESUMO FOLHA SAVIS_DEZ.xls"
    Dim i, K As Integer
    For K = 1 To 12
    Dim WSBANCO As Workbook
        
        Workbooks.Open (ARQUIVOS(K))
        
        Set WSBANCO = ActiveWorkbook
       Dim LINHA, LINHA2, MATRICULA, MATRICULA2 As Long
       Dim NOME, MES, NOME2, MES2 As String
        
       LINHA = 2
       
       With WSBANCO
       
       While ThisWorkbook.Sheets("Dados").Cells(LINHA, 1) <> ""
       LINHA2 = 2
        While .Sheets("DadosJaneiro2015").Cells(LINHA2, 1) <> ""
        
        MATRICULA = ThisWorkbook.Sheets("Dados").Cells(LINHA, 1).Value
        NOME = ThisWorkbook.Sheets("Dados").Cells(LINHA, 2).Value
       MES = ThisWorkbook.Sheets("Dados").Cells(LINHA, 3).Value
            
        MATRICULA2 = .Sheets("DadosJaneiro2015").Cells(LINHA2, 1).Value
        NOME2 = .Sheets("DadosJaneiro2015").Cells(LINHA2, 2).Value
       
        
        If MATRICULA = MATRICULA2 Then
        If NOME = NOME2 Then
        If MES = MESES(K) Then
        
        For i = 4 To 12
        
        ThisWorkbook.Sheets("Dados").Cells(LINHA, i).Value = .Sheets("DadosJaneiro2015").Cells(LINHA2, i - 1).Value
        
        Next i
        End If
        End If
        End If
        
        LINHA2 = LINHA2 + 1
        
        Wend
       
       
       LINHA = LINHA + 1
       Wend
       
       
       End With
    WSBANCO.Close
    Next K
    Application.ScreenUpdating = True
    End Sub
    


    Anderson Diniz

    • Sugerido como Resposta AndersonFDiniz2 domingo, 10 de setembro de 2017 18:36
    • Marcado como Resposta WillGreco segunda-feira, 11 de setembro de 2017 00:18
    • Não Marcado como Resposta WillGreco segunda-feira, 11 de setembro de 2017 00:18
    • Não Sugerido como Resposta WillGreco segunda-feira, 11 de setembro de 2017 00:18
    • Marcado como Resposta WillGreco segunda-feira, 11 de setembro de 2017 00:18
    domingo, 10 de setembro de 2017 18:33
  • Já enviei os 13 arquivos funcionando para o ano inteiro, por email, seguindo o código acima. Já foi testado aqui e está funcionando conforme a imagem acima.

    Anderson Diniz




    • Editado AndersonFDiniz2 domingo, 10 de setembro de 2017 20:59
    • Marcado como Resposta WillGreco segunda-feira, 11 de setembro de 2017 00:17
    • Não Marcado como Resposta WillGreco segunda-feira, 11 de setembro de 2017 00:17
    • Marcado como Resposta WillGreco segunda-feira, 11 de setembro de 2017 00:18
    • Não Marcado como Resposta WillGreco segunda-feira, 11 de setembro de 2017 00:18
    • Marcado como Resposta WillGreco segunda-feira, 11 de setembro de 2017 00:18
    domingo, 10 de setembro de 2017 20:53

Todas as Respostas

  • Olá Anderson, Boa tarde!

    Eu já consegui copiar as colunas que preciso para a minha nova planilha. Olha como ficou, falta algumas informações mas já dá para entender a ideia::

      

    A questão agora é o seguinte: eu fiz um PROCV para o ano de janeiro de 2015 e consegui puxar as informações que precisava para todos os nomes da minha lista (são mais de 2000 nomes)e puxou certinho, mas quando fui fazer um PROCV para o mês de fevereiro, ele puxou os dados certos para o primeiro nome da lista, mas os próximos quando arrastei ele sobre escreveu.

    Não sei como sair dessa agora. Você poderia me ajudar? Obrigado mais uma vez...

     



    • Editado WillGreco sábado, 9 de setembro de 2017 20:38
    sábado, 9 de setembro de 2017 20:36
  • =SEERRO(PROCV(A3;'[RESUMO FOLHA SAVIS_FEV.xls]Resumo'!$A:$K;11;0);"")
    sábado, 9 de setembro de 2017 21:18
  • Anderson, mesmo fixando o A, ainda está sobre escrevendo o mês de janeiro para o próximo nome. 

    Eu aplico a fórmula e quando faço o auto fill ele sobre escreve. 

    sábado, 9 de setembro de 2017 21:25
  • Olá, Anderson!

    Quando eu vou fazer o PROCV para o mês de fevereiro e arrasto, tudo que já foi preenchido é preenchido por cima. A partir, do segundo nome (que está na linha 14) tudo é alterado. As informações só são preservadas para o primeiro nome.


    domingo, 10 de setembro de 2017 02:19
  • Anderson, testei seu código mas olha a mensagem de erro:

    

    domingo, 10 de setembro de 2017 02:33
  • Anderson, acabei te lhe enviar a planilha, muito obrigado pela atenção.

    domingo, 10 de setembro de 2017 14:23
  • Option Explicit
    
    Private Sub Workbook_Open()
    Application.ScreenUpdating = False
    Dim MESES(1 To 12) As String
    Dim ARQUIVOS(1 To 12) As String
    MESES(1) = "JANEIRO"
    MESES(2) = "FEVEREIRO"
    MESES(3) = "MARÇO"
    MESES(4) = "ABRIL"
    MESES(5) = "MAIO"
    MESES(6) = "JUNHO"
    MESES(7) = "JULHO"
    MESES(8) = "AGOSTO"
    MESES(9) = "SETEMBRO"
    MESES(10) = "OUTUBRO"
    MESES(11) = "NOVEMBRO"
    MESES(12) = "DEZEMBRO"
    ARQUIVOS(1) = ThisWorkbook.Path & "\RESUMO FOLHA SAVIS_JAN.xls"
    ARQUIVOS(2) = ThisWorkbook.Path & "\RESUMO FOLHA SAVIS_FEV.xls"
    ARQUIVOS(3) = ThisWorkbook.Path & "\RESUMO FOLHA SAVIS_MAR.xls"
    ARQUIVOS(4) = ThisWorkbook.Path & "\RESUMO FOLHA SAVIS_ABR.xls"
    ARQUIVOS(5) = ThisWorkbook.Path & "\RESUMO FOLHA SAVIS_MAI.xls"
    ARQUIVOS(6) = ThisWorkbook.Path & "\RESUMO FOLHA SAVIS_JUN.xls"
    ARQUIVOS(7) = ThisWorkbook.Path & "\RESUMO FOLHA SAVIS_JUL.xls"
    ARQUIVOS(8) = ThisWorkbook.Path & "\RESUMO FOLHA SAVIS_AGO.xls"
    ARQUIVOS(9) = ThisWorkbook.Path & "\RESUMO FOLHA SAVIS_SET.xls"
    ARQUIVOS(10) = ThisWorkbook.Path & "\RESUMO FOLHA SAVIS_OUT.xls"
    ARQUIVOS(11) = ThisWorkbook.Path & "\RESUMO FOLHA SAVIS_NOV.xls"
    ARQUIVOS(12) = ThisWorkbook.Path & "\RESUMO FOLHA SAVIS_DEZ.xls"
    Dim i, K As Integer
    For K = 1 To 12
    Dim WSBANCO As Workbook
        
        Workbooks.Open (ARQUIVOS(K))
        
        Set WSBANCO = ActiveWorkbook
       Dim LINHA, LINHA2, MATRICULA, MATRICULA2 As Long
       Dim NOME, MES, NOME2, MES2 As String
        
       LINHA = 2
       
       With WSBANCO
       
       While ThisWorkbook.Sheets("Dados").Cells(LINHA, 1) <> ""
       LINHA2 = 2
        While .Sheets("DadosJaneiro2015").Cells(LINHA2, 1) <> ""
        
        MATRICULA = ThisWorkbook.Sheets("Dados").Cells(LINHA, 1).Value
        NOME = ThisWorkbook.Sheets("Dados").Cells(LINHA, 2).Value
       MES = ThisWorkbook.Sheets("Dados").Cells(LINHA, 3).Value
            
        MATRICULA2 = .Sheets("DadosJaneiro2015").Cells(LINHA2, 1).Value
        NOME2 = .Sheets("DadosJaneiro2015").Cells(LINHA2, 2).Value
       
        
        If MATRICULA = MATRICULA2 Then
        If NOME = NOME2 Then
        If MES = MESES(K) Then
        
        For i = 4 To 12
        
        ThisWorkbook.Sheets("Dados").Cells(LINHA, i).Value = .Sheets("DadosJaneiro2015").Cells(LINHA2, i - 1).Value
        
        Next i
        End If
        End If
        End If
        
        LINHA2 = LINHA2 + 1
        
        Wend
       
       
       LINHA = LINHA + 1
       Wend
       
       
       End With
    WSBANCO.Close
    Next K
    Application.ScreenUpdating = True
    End Sub
    


    Anderson Diniz

    • Sugerido como Resposta AndersonFDiniz2 domingo, 10 de setembro de 2017 18:36
    • Marcado como Resposta WillGreco segunda-feira, 11 de setembro de 2017 00:18
    • Não Marcado como Resposta WillGreco segunda-feira, 11 de setembro de 2017 00:18
    • Não Sugerido como Resposta WillGreco segunda-feira, 11 de setembro de 2017 00:18
    • Marcado como Resposta WillGreco segunda-feira, 11 de setembro de 2017 00:18
    domingo, 10 de setembro de 2017 18:33

  • Anderson Diniz

    domingo, 10 de setembro de 2017 18:44
  • Olá Anderson, Boa Tarde!

    O seu código está rodando para o mês de Janeiro, mas só está colocando os valores só a partir do terceiro nome.  

    O que significa no final do seu código o seguinte: 

    LINHA2  = LINHA2 + 1

    Wend

    LINHA = LINHA + 1  e 

    Wend

    Será que isso tem alguma coisa haver?

     

    Obrigado desde já.

    domingo, 10 de setembro de 2017 20:37
  • Já enviei os 13 arquivos funcionando para o ano inteiro, por email, seguindo o código acima. Já foi testado aqui e está funcionando conforme a imagem acima.

    Anderson Diniz




    • Editado AndersonFDiniz2 domingo, 10 de setembro de 2017 20:59
    • Marcado como Resposta WillGreco segunda-feira, 11 de setembro de 2017 00:17
    • Não Marcado como Resposta WillGreco segunda-feira, 11 de setembro de 2017 00:17
    • Marcado como Resposta WillGreco segunda-feira, 11 de setembro de 2017 00:18
    • Não Marcado como Resposta WillGreco segunda-feira, 11 de setembro de 2017 00:18
    • Marcado como Resposta WillGreco segunda-feira, 11 de setembro de 2017 00:18
    domingo, 10 de setembro de 2017 20:53