Usuário com melhor resposta
Problemas no PROCV

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
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
-
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
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
-
-
-
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.
-
-
-
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
-
-
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á.
-
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