Olá!
Preciso unir informações de várias planilhas (+/- 25) em uma única para consolidar os dados, sendo que várias pessoas alimentam estas planilhas. As planilhas tem um padrão e são repletas de fórmulas. Tentei usar: Dados>De Outras Fontes>Do Microsoft Query, porém quando uso o comando union all, só trás informações de 1 planilha.
Podem me ajudar?
Obrigada!
Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Juntar várias planilhas em uma só (Excel)
-
- Acabou de chegar
- Mensagens: 1
- Registrado em: Sáb Nov 14, 2015 10:45 am
Re: Juntar várias planilhas em uma só (Excel)
Olá!
consegui!!!
mas antes...
Também me deparei com a mesma necessidade e , após algumas pesquisas sobre o assunto cheguei aos vídeos do Tomás no youtube. Mesmo seguindo todas as dicas e orientações, tive vários problemas no resultado final, pois precisava unir dados de cinco planilhas de controle de produção, sendo que cada planilha é um arquivo separado e fica em máquinas distintas na rede.
como resolvi:
criei um arquivo novo (Excel obvio) chamado "ConsolidacaoTodasMaquinas". Neste arquivo abri cinco planilhas (abas). Em cada aba criei conexões com os respectivos dados das planilhas originais que são alimentadas diariamente pelo pessoal da fábrica. Agora com os dados reunidos em um só arquivo, precisava unificá-los em uma única planilha. Eis o problema! Mesmo seguindo as dicas do Tomás (https://www.youtube.com/watch?v=2g24Xqyu5TI) não obtive sucesso.
finalmente Resolvi:
como tenho um prévio e básico conhecimento em VBA, resolvi criar um código para unir todas as planilhas em uma só. Antes porém, renomeei cada intervalo de dados (planilhas) para referenciar no código. ficou assim:
'----------------------------------------------------------------------
Dim vStarTime As Double, vEndTime As Double, vTempoCorrido As Double ' variáveis para calculo do tempo necessário para executar o procedimento
Dim UltimaLinha As Long 'Variável para localizar a última linha preenchida na planilha
Sub ConsolidarTudo()
Application.ScreenUpdating = False
vStarTime = Timer 'inicia a contagem do tempo do necessário para executar o procedimento
UltimaLinha = Sheets("Consolidacao").UsedRange.Rows.Count + 1 'localizar a última linha preenchida na planilha consolidação
'ULtimaCouna = heets("Consolidacao").UsedRange.Columns.Count
If UltimaLinha > 2 Then
Sheets("Consolidacao").Rows("2:" & UltimaLinha).Delete ' Seleciona todas as linhas exceto o cabeçaho e deleta
UltimaLinha = Sheets("Consolidacao").UsedRange.Rows.Count + 1 'Atualiza a contagem de linhas após ter limpado a planilha
End If
Range("tblAlban1").Copy
Sheets("Consolidacao").Range("A" & UltimaLinha).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
UltimaLinha = Sheets("Consolidacao").UsedRange.Rows.Count + 1
Range("tblAlban2").Copy
Sheets("Consolidacao").Range("A" & UltimaLinha).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
UltimaLinha = Sheets("Consolidacao").UsedRange.Rows.Count + 1
Range("tblAlban3").Copy
Sheets("Consolidacao").Range("A" & UltimaLinha).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
UltimaLinha = Sheets("Consolidacao").UsedRange.Rows.Count + 1
Range("tblAlban4").Copy
Sheets("Consolidacao").Range("A" & UltimaLinha).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
UltimaLinha = Sheets("Consolidacao").UsedRange.Rows.Count + 1
Range("tblAlban5").Copy
Sheets("Consolidacao").Range("A" & UltimaLinha).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
UltimaLinha = Sheets("Consolidacao").UsedRange.Rows.Count + 1
vEndTime = Timer 'Finaliza a contagem do tempo
vTempoCorrido = vEndTime - vStarTime 'Calcula a diferenca entre o tempo inicial e final, ou seja, o tempo corrido para executar o procedimento
MsgBox "Consolidação concluída com sucesso em " & vTempoCorrido & " segundos.", vbInformation, "Consolidação dos dados de todas as máquinas Albans"
Application.ScreenUpdating = True
End Sub
'--------------------------------------------------------------
Onde "tblAlban1" é o nome do intervalo da planilha 1 e assim por diante. Brincando um pouco, coloquei um contador de tempo onde é possível ver o tempo que demora pra executar o procedimento.
espero que gostem e que ajude alguém que precise, como eu precisei e quebrei a cabeça
consegui!!!
mas antes...
Também me deparei com a mesma necessidade e , após algumas pesquisas sobre o assunto cheguei aos vídeos do Tomás no youtube. Mesmo seguindo todas as dicas e orientações, tive vários problemas no resultado final, pois precisava unir dados de cinco planilhas de controle de produção, sendo que cada planilha é um arquivo separado e fica em máquinas distintas na rede.
como resolvi:
criei um arquivo novo (Excel obvio) chamado "ConsolidacaoTodasMaquinas". Neste arquivo abri cinco planilhas (abas). Em cada aba criei conexões com os respectivos dados das planilhas originais que são alimentadas diariamente pelo pessoal da fábrica. Agora com os dados reunidos em um só arquivo, precisava unificá-los em uma única planilha. Eis o problema! Mesmo seguindo as dicas do Tomás (https://www.youtube.com/watch?v=2g24Xqyu5TI) não obtive sucesso.
finalmente Resolvi:
como tenho um prévio e básico conhecimento em VBA, resolvi criar um código para unir todas as planilhas em uma só. Antes porém, renomeei cada intervalo de dados (planilhas) para referenciar no código. ficou assim:
'----------------------------------------------------------------------
Dim vStarTime As Double, vEndTime As Double, vTempoCorrido As Double ' variáveis para calculo do tempo necessário para executar o procedimento
Dim UltimaLinha As Long 'Variável para localizar a última linha preenchida na planilha
Sub ConsolidarTudo()
Application.ScreenUpdating = False
vStarTime = Timer 'inicia a contagem do tempo do necessário para executar o procedimento
UltimaLinha = Sheets("Consolidacao").UsedRange.Rows.Count + 1 'localizar a última linha preenchida na planilha consolidação
'ULtimaCouna = heets("Consolidacao").UsedRange.Columns.Count
If UltimaLinha > 2 Then
Sheets("Consolidacao").Rows("2:" & UltimaLinha).Delete ' Seleciona todas as linhas exceto o cabeçaho e deleta
UltimaLinha = Sheets("Consolidacao").UsedRange.Rows.Count + 1 'Atualiza a contagem de linhas após ter limpado a planilha
End If
Range("tblAlban1").Copy
Sheets("Consolidacao").Range("A" & UltimaLinha).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
UltimaLinha = Sheets("Consolidacao").UsedRange.Rows.Count + 1
Range("tblAlban2").Copy
Sheets("Consolidacao").Range("A" & UltimaLinha).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
UltimaLinha = Sheets("Consolidacao").UsedRange.Rows.Count + 1
Range("tblAlban3").Copy
Sheets("Consolidacao").Range("A" & UltimaLinha).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
UltimaLinha = Sheets("Consolidacao").UsedRange.Rows.Count + 1
Range("tblAlban4").Copy
Sheets("Consolidacao").Range("A" & UltimaLinha).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
UltimaLinha = Sheets("Consolidacao").UsedRange.Rows.Count + 1
Range("tblAlban5").Copy
Sheets("Consolidacao").Range("A" & UltimaLinha).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
UltimaLinha = Sheets("Consolidacao").UsedRange.Rows.Count + 1
vEndTime = Timer 'Finaliza a contagem do tempo
vTempoCorrido = vEndTime - vStarTime 'Calcula a diferenca entre o tempo inicial e final, ou seja, o tempo corrido para executar o procedimento
MsgBox "Consolidação concluída com sucesso em " & vTempoCorrido & " segundos.", vbInformation, "Consolidação dos dados de todas as máquinas Albans"
Application.ScreenUpdating = True
End Sub
'--------------------------------------------------------------
Onde "tblAlban1" é o nome do intervalo da planilha 1 e assim por diante. Brincando um pouco, coloquei um contador de tempo onde é possível ver o tempo que demora pra executar o procedimento.
espero que gostem e que ajude alguém que precise, como eu precisei e quebrei a cabeça