Notifications
Clear all

Importar arquivos xls em uma pasta

8 Posts
3 Usuários
0 Reactions
1,242 Visualizações
(@sergio7)
Posts: 0
New Member
Topic starter
 

Preciso importar todos os arquivos xls de uma pasta para um arquivo tb xls, estava utilizando o código abaixo mas da erro nas linhas com o texto em vermelho:

Sub Importar_xlsx()
Dim strPathFile As String, strFile As String, strPath As String
Dim strTable As String
Dim blnHasFieldNames As Boolean
blnHasFieldNames = True
strPath = "C:Cidade" ' drive onde se situa o seu documento excel
strTable = "Plan1" 'nome da tabela no seu banco
strFile = Dir(strPath & "*.xls")
'strFile = Dir(strPath & "*.csv")'
Do While Len(strFile) > 0
strPathFile = strPath & strFile
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
strTable, strPathFile, blnHasFieldNames
strFile = Dir()
Loop
End Sub

Alguém pode me ajudar?

Obrigado, Sérgio

 
Postado : 27/05/2014 5:39 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite Sergio7

Seja bem-vindo ao fórum!

Este local é exclusivo para apresentação dos novos usuários do fórum, por isso, movi teu tópico para a sala VBA & Macros.

Por enquanto vou deixar mostrando nos 2 locais para você se localizar.

[]s

Patropi - Moderador

 
Postado : 27/05/2014 5:45 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Sérgiko,

Boa Noite!

Não entendi bem esse seu código. Todavia, segue um exemplo que faz o que você quer.

Veja se assim lhe atende.

 
Postado : 27/05/2014 6:41 pm
(@sergio7)
Posts: 0
New Member
Topic starter
 

Obrigado Wagner, ajudou bastante, vou tentar adaptar ao meu caso vi que o código funciona perfeitamente.

 
Postado : 27/05/2014 7:41 pm
(@sergio7)
Posts: 0
New Member
Topic starter
 

Wagner, como faço para iniciar a importação a partir da segunda linha de cada planilha?
No código que você sugeriu o cabeçalho que está na primeira linha vem junto em todas as planilhas.

Sérgio.

 
Postado : 28/05/2014 11:06 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Sérgio,

Nessa parte do código:

        ActiveSheet.UsedRange.Copy _
        ThisWorkbook.Sheets("Plan1").Range("A" & Cells.Rows.Count).End(xlUp).Offset(1, 0)

Você pode alterar assim:

         'Aqui você deve registrar toda a faixa de células que quer copiar
        ActiveSheet.Range ("A2:H30").Copy _
        ThisWorkbook.Sheets("Plan1").Range("A" & Cells.Rows.Count).End(xlUp).Offset(1, 0)
 
Postado : 28/05/2014 7:04 pm
(@sergio7)
Posts: 0
New Member
Topic starter
 

Wagner muito obrigado, resolveu o meu problema.

Valeu, Sérgio.

 
Postado : 29/05/2014 5:03 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Ok Sérgio. Peço a gentileza de votar positivamente clicando na mãozinha ao lado da ferramenta citar.

 
Postado : 29/05/2014 7:06 pm