Copiando informaçõe...
 
Notifications
Clear all

Copiando informações de vários arquivos!!

6 Posts
3 Usuários
0 Reactions
1,428 Visualizações
(@dezenove)
Posts: 4
Active Member
Topic starter
 

Boa tarde,

Encontrei um código na internet onde ele copia todas as informações de vários arquivos de uma pasta e transfere para uma unica planilham, o código funciona perfeitamente, mas não exatamente para o que preciso.
Ele copia a planilha inteira, o que preciso é que ele copie apenas da coluna B à O, mas cada arquivo vária a quantidade de linha, uns podendo ter mais e outros menos, preciso copiar essas linhas, mas sempre começa pela linha B12.

Alguém poderia me da uma ajuda? não tenho experiencia em VBA.

O código que encontrei na intenet é esse. é possivel adpatar ele para o que presico?

Sub ImportarArquivosExcel()
Dim Pasta As String
Dim Arquivo As String

'Abre uma caixa de diálogo para selecionar a pasta
'onde estão os arquivos
With Application.FileDialog(msoFileDialogFolderPicker)
.Show
Pasta = .SelectedItems(1)
End With

'Coloca na variável o nome do primeiro arquivo
Arquivo = Dir(Pasta & "" & "*.xls*")

'Inicia um laço para cópia dos arquivos
Do
'Abre o arquivo
Workbooks.Open Pasta & "" & Arquivo

'Copia o intervalo usado da planilha de origem e cola
'na primeira linha vazia da planilha de destino
ActiveSheet.UsedRange.Copy _
ThisWorkbook.Sheets("Plan1").Range("A" & Cells.Rows.Count).End(xlUp).Offset(1, 0)

'Fecha o arquivo
Workbooks(Arquivo).Close

'Coloca na variável o nome do próximo arquivo
Arquivo = Dir
Loop While Arquivo <> ""

Application.CutCopyMode = False

MsgBox "Fim de Execução da Macro"
End Sub

 
Postado : 09/01/2014 2:26 pm
(@depoisteconto)
Posts: 183
Reputable Member
 

Disponha um exemplo para ter uma ajuda melhor.

At

 
Postado : 09/01/2014 5:00 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

Experimente:

Sub ImportarArquivosExcel()
Dim Pasta As String
Dim Arquivo As String
Dim UL As Integer

'Abre uma caixa de diálogo para selecionar a pasta
'onde estão os arquivos
With Application.FileDialog(msoFileDialogFolderPicker)
.Show
Pasta = .SelectedItems(1)
End With

'Coloca na variável o nome do primeiro arquivo
Arquivo = Dir(Pasta & "" & "*.xls*")

'Inicia um laço para cópia dos arquivos
Do
'Abre o arquivo
Workbooks.Open Pasta & "" & Arquivo

'Copia o intervalo usado da planilha de origem e cola
'na primeira linha vazia da planilha de destino
With ActiveSheet
UL = .Range("B" & Rows.Count).End(xlUp).Row
.Range("B12:O" & UL).Copy _
ThisWorkbook.Sheets("Plan1").Range("A" & Cells.Rows.Count).End(xlUp).Offset(1, 0)
End With

'Fecha o arquivo
Workbooks(Arquivo).Close

'Coloca na variável o nome do próximo arquivo
Arquivo = Dir
Loop While Arquivo <> ""

Application.CutCopyMode = False

MsgBox "Fim de Execução da Macro"
End Sub
 
Postado : 09/01/2014 7:33 pm
(@dezenove)
Posts: 4
Active Member
Topic starter
 

Bom dia,

Obrigado gtsalikis, mas ao testar esse código deu esse erro:

Erro em tempo de execução '9':
Subscrito fora do intervalo

Ao "Deburar" ele deixa em amarela as linhas:

.Range("B12:O" & UL).Copy _
ThisWorkbook.Sheets("Plan1").Range("A" & Cells.Rows.Count).End(xlUp).Offset(1, 0)

Quando ao exemplo, vou colocar essa imagem para vocês terem ideia como é a planilha de onde quero retirar as informações.

Trabalho numa construtora, e todo mês, todas as obras me mandam solicitações de itens para material de limpeza e escritorio.
Para não ter que abrir arquivo pro arquivo e pegar as informações do que eles estão pedindo, estou querendo esse código.

Todas as planilhas de Solicitação tem o mesmo padrão.
O que vai diferenciar é a quantidade de itens que um vai pedir.
Mas como vocês podem ver, sempre começa na linha 12.
O que preciso realmetne é somente das colunas: Qtde., Unid., Insumo e Descrição.
A planilha unica que vai juntar todas as informações de todos os arquivos não precisar ter nada de mais.
Só quero que tenha todas as informações de todos os arquivos.

 
Postado : 10/01/2014 4:40 am
(@dezenove)
Posts: 4
Active Member
Topic starter
 

Tentei achar o editar mas não conseguir.

Lembrando que cada arquivo o nome é diferente, mas é mais ou menos assim
SC-001.728-02-001-27.12.2013-8-Materiais de Limpeza e Higiene-Dez2013
única coisa que é sempre igual é o SC- do começo.
Não sei se isso influencia em alguma coisa.

 
Postado : 10/01/2014 12:04 pm
(@dezenove)
Posts: 4
Active Member
Topic starter
 

Alguém pode me ajudar?

 
Postado : 15/01/2014 8:22 am