Amigos,
Encontrei aqui no fórum este tópico (http://maximoaccess.forumeiros.com/t13896-copiar-de-excel-para-excel-via-access-vba?highlight=copiar+excel) já antigo do nosso amigo Rafael que ficou por resolver (pelo menos não se encontra trancado).
Preciso fazer o mesmo processo e não estou conseguindo, ou seja, copiar os valores de uma tabela Excel para outra tabela Excel dentro do Access. Passo a explicar:
1. Tenho o ficheiro “Origem.xls”
2. Tenho o ficheiro “Destino.xls”
3. Pretendo copiar os dados existentes no ficheiro “Origem.xls”, através de seleção do caminho deste ficheiro, para o ficheiro “Destino.xls” (cujo caminho estará previamente definido) e para uma folha específica (Ex: Folha2)
4. De preferência sem necessidade de abertura dos ficheiros Excel.
Apesar do código abaixo (disponibilizado no tópico) não fazer o que pretendo, e de gerar alguns erros, penso que poderá servir de orientação para a solução.
Segue também a BD exemplo deixada naquele tópico para facilitar o estudo.
Obrigado desde já a todos os interessados!
Pepe
Encontrei aqui no fórum este tópico (http://maximoaccess.forumeiros.com/t13896-copiar-de-excel-para-excel-via-access-vba?highlight=copiar+excel) já antigo do nosso amigo Rafael que ficou por resolver (pelo menos não se encontra trancado).
Preciso fazer o mesmo processo e não estou conseguindo, ou seja, copiar os valores de uma tabela Excel para outra tabela Excel dentro do Access. Passo a explicar:
1. Tenho o ficheiro “Origem.xls”
2. Tenho o ficheiro “Destino.xls”
3. Pretendo copiar os dados existentes no ficheiro “Origem.xls”, através de seleção do caminho deste ficheiro, para o ficheiro “Destino.xls” (cujo caminho estará previamente definido) e para uma folha específica (Ex: Folha2)
4. De preferência sem necessidade de abertura dos ficheiros Excel.
Apesar do código abaixo (disponibilizado no tópico) não fazer o que pretendo, e de gerar alguns erros, penso que poderá servir de orientação para a solução.
- Código:
Sub copiar()
Dim Xl As Excel.Application
Dim wb As Workbook
Dim rng As Range
Dim LastRow As Long
Dim ws As Worksheet
Dim l As Long
Dim cell As Range
Dim fs As FileSystemObject
Set Xl = New Excel.Application
Xl.DisplayAlerts = False
Xl.Visible = True
FileName = "C:\Origem.xlsx" ' Caminho da Planilha
Set wb = Xl.Workbooks.Open(FileName) 'Abro planilha
Set ws = wb.Worksheets(1) 'Assumo que usarei a primeira sheet
l = 1 ' Assumo que copiarei da primeira linha
Do While Trim(ws.Range("A" + Trim(Str(l))).Value) <> "" ' Verifico quantidade de linhas a serem copiadas
l = l + 1
Loop
Set cell = ws.Range("A1", "B" + Trim(Str(l))) 'Range a ser copiado
cell.Copy
FileName2 = "C:\Destino.xlsx"
Set wb = Xl.Workbooks.Open(FileName2)
Set ws = wb.Worksheets(1)
Range("A1").Select
ActiveSheet.Paste
Set ws = Nothing 'zera a variável da sheet
Set cell = Nothing 'zera a variavel do range a ser copiado
wb.Saved = True 'não salva o excel
wb.Close 'fecha o excel
Set wb = Nothing 'zera o workbook
Set Xl = Nothing 'zera a variavel do excel
MsgBox "Introdução de Dados Concluída"
End Sub
Segue também a BD exemplo deixada naquele tópico para facilitar o estudo.
Obrigado desde já a todos os interessados!
Pepe
- Anexos
- Copiar_Excel.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (51 Kb) Baixado 13 vez(es)