Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
Por TonyCvo
Posts
#822
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
#1282
Bom dia!!

Qual versão do office você usa?

Att
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord