Página 1 de 1

Importar dados de outro arquivo .xlsx

Enviado: 14 Mai 2015 às 16:19
por TonyCvo
Olá,

Tenho uma planilha de bancos de dados no formato .xlsx e preciso importar os dados da aba Serviços e Eventos dela para as abas Serviços e Eventos da planilha de cálculos em que estou trabalhando. Mas a planilha do BD muda de nome constantemente, as abas dela não. Eu criei um userform para selecionar o local da planilha e atraves de OLEDB ela puxa os dados respectivos para as respectivas planilhas. Mas como são muitos dados, a operação por este método demora bastante. Não dá para fazer com PROCV devido a limitação imposta pela constante mudança de nome e de local da planilha de bancos de dados. Minha pergunta é, há outra forma de importar dados de uma planilha do Excel sem ter que abrir a planilha? Apenas apontando o caminho e as abas?

Segue abaixo o código:

Sub ImportarDados()



Dim Arquivo As String
Dim Tipo As String
Dim Titulo As String

Tipo = "Arquivos de Excel (*.xlsx*),*.xlsx*"
Titulo = "Selecione um arquivo do Excel:'"

Arquivo = CStr(Application.GetOpenFilename(Tipo, , Titulo, , False))

Sheets("Serviços").Select


'Copia aba Serviços
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array( _
"OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;Password="""";User ID=Admin;Data Source=" & Arquivo & ";Mode=Share Deny Write;Extended Properties=" _
, _
"""HDR=YES;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=37;Jet O" _
, _
"LEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Pas" _
, _
"sword="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Je" _
, _
"t OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=False;Jet OLEDB:Bypass UserInfo " _
, "Validation=False"), Destination:=Range("$A$1")).QueryTable
.CommandType = xlCmdTable
.CommandText = Array("Serviço$")
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.SourceDataFile = "Arquivo"
.ListObject.DisplayName = "Tabela_Dados"
.Refresh BackgroundQuery:=False
End With


End Sub

Re: Importar dados de outro arquivo .xlsx

Enviado: 11 Jun 2015 às 16:37
por TonyCvo
Vixi, nem os bons estão sabendo.

Re: Importar dados de outro arquivo .xlsx

Enviado: 12 Jun 2015 às 11:49
por alexandrevba
Bom dia!!

Qual versão do office você usa?

Att

Importar dados de outro arquivo .xlsx

Enviado: 12 Jun 2015 às 13:11
por TonyCvo
Olá,

No trabalho é o Office 2010, em casa o 2013.

Att.