Logo Hardware.com.br
Rafael-XLS
Rafael-XLS Novo Membro Registrado
4 Mensagens 0 Curtidas

Excel - Macro para arrumar listas importadas intercaladas

#1 Por Rafael-XLS 12/09/2017 - 12:17
Bom dia turma!

Por favor, preciso do apoio de vocês. Coloquei em anexo uma planilha exemplo para melhor entendimento.

Essa planilha importa informações do servidor em cada aba (A, B, C...) via macro. Porém, essas informações não tem limite de linhas, somente coluna. Ex.: Atualizando hoje, a aba A pode gerar 10 linhas de informações, mas a aba B pode não gerar nada.

Dúvida: Como faço para criar uma macro que faça todas essas pesquisas em uma aba somente e deixe-as arrumadas? Vamos supor que a aba Z será a definitiva. Ela ira importar todas as informações que as abas A, B, C... puxavam, e arrumar uma embaixo da outra sem pular linhas. Ex.: Aba A gerou 10 linhas. Aba B gerou 5. A aba Z (definitiva) iria consolidar as 10 linhas (da aba A) logo em seguida as 5 (da aba B), e assim, sucessivamente.

Desde já, agradeço o apoio de todos!

Atenciosamente,

Rafael-XLS

Anexos

osvaldomp
osvaldomp Geek Registrado
753 Mensagens 558 Curtidas
#4 Por osvaldomp
12/09/2017 - 17:48
Experimente:



Sub Teste()
Dim WSo As Worksheet, WSd As Worksheet, LRo As Long
Set WSd = Sheets("Definitiva&quot
With WSd
If .[A3] <> "" Then .Range("A3" & .Cells(Rows.Count, 1).End(3).Row).Value = ""
For Each WSo In ThisWorkbook.Worksheets
If WSo.Name <> WSd.Name Then
LRo = WSo.Cells(Rows.Count, 1).End(3).Row
.Cells(Rows.Count, 1).End(3)(2).Resize(LRo - 2, 4).Value = _
WSo.Range("A3" & WSo.Cells(Rows.Count, 1).End(3).Row).Resize(LRo - 2, 4).Value
End If
Next WSo
End With
End Sub
Osvaldo
Rafael-XLS
Rafael-XLS Novo Membro Registrado
4 Mensagens 0 Curtidas
#5 Por Rafael-XLS
14/09/2017 - 13:59
osvaldomp disse:
Experimente:



Sub Teste()
Dim WSo As Worksheet, WSd As Worksheet, LRo As Long
Set WSd = Sheets("Definitiva&quot
With WSd
If .[A3] <> "" Then .Range("A3" & .Cells(Rows.Count, 1).End(3).Row).Value = ""
For Each WSo In ThisWorkbook.Worksheets
If WSo.Name <> WSd.Name Then
LRo = WSo.Cells(Rows.Count, 1).End(3).Row
.Cells(Rows.Count, 1).End(3)(2).Resize(LRo - 2, 4).Value = _
WSo.Range("A3" & WSo.Cells(Rows.Count, 1).End(3).Row).Resize(LRo - 2, 4).Value
End If
Next WSo
End With
End Sub


Boa tarde parceiro! Obrigado pelo apoio, mas não consegui inserir não. Meu conhecimento com macros é meio limitado. Será que posso te enviar a planilha original?
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal