Página 1 de 1

Importar dados de uma planilha para outra

Enviado: Qui Ago 13, 2015 2:38 pm
por fabianolordelo
Boa tarde.

Estou precisando de uma macro para importar os dados de uma planilha para outra que estejam salvas na mesma pasta.

Exemplo: Sempre que eu clicar no botão "importar dados" da planilha "DOCUMENTOS" eu consiga pesquisar, achar a planilha que quero importar e ao clicar nela, seus dados passassem para a planilha "DOCUMENTOS"

Poderiam me ajudar?

Re: Importar dados de uma planilha para outra

Enviado: Dom Ago 23, 2015 12:40 am
por Fabio Trindade
Boa noite, fabianolordelo

Da uma olhada nesse código.

Código: Selecionar todos

Private Sub cmdImportExcel_Click()
' import excel file

Dim importFileName As Variant
Dim importWorkbook As Workbook
Dim importSheet As Worksheet
Dim importRange As Range
       
	' show open file dialog
	importFileName = Application.GetOpenFilename(FileFilter:="Arquivo do Excel (*.xls; *.xlsx), *.xls;*.xlsx", Title:="Escolha um arquivo do Excel")
	
	' if user pressed cancel buton: exit
	If importFileName = False Then Exit Sub
	
	Application.ScreenUpdating = False
	
		 ' if user selected a excel file, open it
		 Set importWorkbook = Application.Workbooks.Open(importFileName)
		 Set importSheet = importWorkbook.Worksheets(1)

		 ' copy from import sheet
		 Set importRange = importSheet.Range( _
			 importSheet.Range("A2"), _
			 importSheet.Range("I" & importSheet.Rows.Count).End(xlUp) _
		 )
		 
		 importRange.Copy
		 
		 ' paste into Data sheet
		 SheetData.Range("A1").PasteSpecial xlValues
		 SheetData.Range("A1").PasteSpecial xlPasteFormats
		 Application.CutCopyMode = False
 
 importWorkbook.Close
       
End Sub

Re: Importar dados de uma planilha para outra

Enviado: Qui Dez 06, 2018 6:17 am
por fcunha
Olá, coloquei esse código acima na minha planilha, no entanto, dá erro 424 Object Required na linha DataSheet...

Alguém poderia ajudar? Sei que esse post é muito antigo, então vou ficar na espectativa de alguém ainda vir ler por aqui, obrigado.

Re: Importar dados de uma planilha para outra

Enviado: Qui Dez 06, 2018 7:00 am
por Reinaldo
Dificil auxiliar pela info passada. Não localizei na rotina qualquer linha com DataSheet..
Agora se refere-se ao trecho

Código: Selecionar todos

...' paste into Data sheet
		 SheetData.Range("A1").PasteSpecial xlValues
		 SheetData.Range("A1").PasteSpecial xlPasteFormats...
a referencia SheetData.Range deve ser alterada de acordo com o nome de sua planilha "recebedora" dos dados

Re: Importar dados de uma planilha para outra

Enviado: Qui Dez 13, 2018 5:40 am
por fcunha
Reinaldo escreveu: Qui Dez 06, 2018 7:00 am Dificil auxiliar pela info passada. Não localizei na rotina qualquer linha com DataSheet..
Agora se refere-se ao trecho

Código: Selecionar todos

...' paste into Data sheet
		 SheetData.Range("A1").PasteSpecial xlValues
		 SheetData.Range("A1").PasteSpecial xlPasteFormats...
a referencia SheetData.Range deve ser alterada de acordo com o nome de sua planilha "recebedora" dos dados
Reinaldo, obrigado pelo seu comentário. Eu tentei colocar o nome da planilha, mas aí aparece um erro 9 dizendo: Subscript Out of Range.

O código que estou usando é esse (tive que tirar de Private Sub porque não estava sabendo como fazer isso funcionar):

Código: Selecionar todos

Sub cmdImportFlatALL_Click()
' import excel file

Dim importFileName As Variant
Dim importWorkbook As Workbook
Dim importSheet As Worksheet
Dim importRange As Range
       
' show open file dialog
importFileName = Application.GetOpenFilename(FileFilter:="Arquivo do Excel (*.xls; *.xlsx; *.xlsb), *.xls;*.xlsx;*.xlsb", Title:="Escolha um arquivo do Excel")

' if user pressed cancel buton: exit
If importFileName = False Then Exit Sub
Application.ScreenUpdating = False
' if user selected a excel file, open it
Set importWorkbook = Application.Workbooks.Open(importFileName)
Set importSheet = importWorkbook.Worksheets(3)
' copy from import sheet
Set importRange = importSheet.Range(importSheet.Range("A1"), importSheet.Range("AK" & importSheet.Rows.Count).End(xlUp))
importRange.Copy
 ' paste into Data sheet

    Sheets("EUR - Flat-ALL").Range("C10").PasteSpecial xlValues
    Sheets("EUR - Flat-ALL").Range("C10").PasteSpecial xlPasteFormats
Application.CutCopyMode = False
importWorkbook.Close
End Sub
Mas o que na verdade eu queria era que ao invés de eu ter que especificar exatamente qual planilha é pra ele colar, queria que ele utilizasse a planilha ativa. Até tentei usar Active.Sheets (ou qualquer coisa similar isso que encontrei pelo forum), mas também não funcionou.

Obrigado de antemão pela ajuda.

Re: Importar dados de uma planilha para outra

Enviado: Qui Dez 13, 2018 7:32 am
por Reinaldo
Experimente assim:

Código: Selecionar todos

Sub cmdImportFlatALL_Click()
' import excel file
Dim importFileName As Variant
Dim importWorkbook As Workbook
Dim importSheet As Worksheet
Dim importRange As Range
Dim wb As Workbook
Dim sh As Worksheet
'Determina o arquivo onde sera colado os dados
Set wb = ThisWorkbook
Set sh = wb.ActiveSheet
' show open file dialog
importFileName = Application.GetOpenFilename(FileFilter:="Arquivo do Excel (*.xls; *.xlsx; *.xlsb), *.xls;*.xlsx;*.xlsb", Title:="Escolha um arquivo do Excel")

' if user pressed cancel buton: exit
If importFileName = False Then Exit Sub
Application.ScreenUpdating = False
' if user selected a excel file, open it
Set importWorkbook = Application.Workbooks.Open(importFileName)
Set importSheet = importWorkbook.Worksheets(3)
' copy from import sheet
Set importRange = importSheet.Range(importSheet.Range("A1"), importSheet.Range("AK" & importSheet.Rows.Count).End(xlUp))
MsgBox importRange.Address
importRange.Copy
 ' paste into Data sheet
wb.Activate
sh.Range("C10").PasteSpecial xlValues
sh.Range("C10").PasteSpecial xlPasteFormats
Application.CutCopyMode = False
importWorkbook.Close
End Sub

Re: Importar dados de uma planilha para outra

Enviado: Sex Dez 14, 2018 6:29 am
por fcunha
Reinaldo escreveu: Qui Dez 13, 2018 7:32 am Experimente assim:
...
Reinaldo, muito obrigado mesmo! Ajudou demais!!!

Re: Importar dados de uma planilha para outra

Enviado: Qui Abr 11, 2019 2:06 pm
por lnunes.eng
boa tarde.

estou tentando usar este mesmo código, e está dando erro de subscript out of range na linha:
Set importSheet = importWorkbook.Worksheets(3)

a diferença é que vinculei o script a um botão, e o conteúdo do arquivo que eu escolhi vai para uma outra sheet, ou seja, possuo multiplas sheets dentro do meu arquivo excel.

Re: Importar dados de uma planilha para outra

Enviado: Dom Abr 11, 2021 1:50 pm
por CBPR
lnunes.eng escreveu: Qui Abr 11, 2019 2:06 pm boa tarde.

estou tentando usar este mesmo código, e está dando erro de subscript out of range na linha:
Set importSheet = importWorkbook.Worksheets(3)

a diferença é que vinculei o script a um botão, e o conteúdo do arquivo que eu escolhi vai para uma outra sheet, ou seja, possuo multiplas sheets dentro do meu arquivo excel.
-----
Utilize:
Set importSheet = importWorkbook.Worksheets(1)

Provavelmente dará certo.

Re: Importar dados de uma planilha para outra

Enviado: Seg Jul 12, 2021 10:19 am
por anderson_brito2008
Bom dia! Reinaldo o no caso de importa dados entre tabelas da mesma planilha. Vc teria um codigo ?

A sutiação é a seguinte: Tenho um tabela dinamica e quero enviar os info para outra tabela planilha, mais que seja de forma automatica sem precisa criar algum botão.