Olá pessoal,
Estou eu novamente com essa parte de automação de Access x Excel.
estou com dúvida de como terminar esse código:
Trata-se de um arquivo do Excel com várias planilhas
e não sei quantos registros tem em cada planilha
e também não sei quantas planilhas pode-se ter, isso depende da
movimentação mensal, essa importação irei fazer uma vez por mês
preciso desses dados dentro do access. Como são várias planilhas
com a mesma posição de colunas mas separadas em planilhas
com +/- 16.384 linhas cada planilha e +/- 14 planilhas.
Tenho de juntar tudo e colocar em uma tabela só.
Eu até poderia copiar e colar, mas gostaria de um processo automático.
O código abaixo está comentado, se alguém puder me ajudar
ficarei agradecido.
Não estou sabendo como faço o loop no excel e quantos registros tem em cada planilha.
cmbsheet é onde eu informo o numero de planilhas
é do tipo integer. cmbsheet não é uma variável, é uma combox
e nela eu informo de 1 a 20 o numero de planilhas
o for next irá rodar de acordo com esse número.
é isso.
Estou eu novamente com essa parte de automação de Access x Excel.
estou com dúvida de como terminar esse código:
Trata-se de um arquivo do Excel com várias planilhas
e não sei quantos registros tem em cada planilha
e também não sei quantas planilhas pode-se ter, isso depende da
movimentação mensal, essa importação irei fazer uma vez por mês
preciso desses dados dentro do access. Como são várias planilhas
com a mesma posição de colunas mas separadas em planilhas
com +/- 16.384 linhas cada planilha e +/- 14 planilhas.
Tenho de juntar tudo e colocar em uma tabela só.
Eu até poderia copiar e colar, mas gostaria de um processo automático.
O código abaixo está comentado, se alguém puder me ajudar
ficarei agradecido.
- Código:
'Abre a tabela para receber os dados
Set RsTable2 = CurrentDb.OpenRecordset("Tbl_Base2_tmp", dbOpenDynaset)
'Faz o loop nas planilhas
For I = 1 To cmbSheet
Registros1 = RsTable2.RecordCount
'Define qual será a planilha
xcel.Sheets("Sheet" & I).Select
'Faz o loop nos registros do excel
L = 1
strvalor = SysCmd(acSysCmdInitMeter, "Importando planilha " & I & "...", Registros1)
LOOP NO EXCEL
strvalor = SysCmd(acSysCmdUpdateMeter, contador)
RsTable2.AddNew
RsTable2("CRIADAMANUAL") = xcel.Cells(L, 1).Value
RsTable2("NUMDOC") = xcel.Cells(L, 2).Value
RsTable2("NUMNF") = xcel.Cells(L, 3).Value
RsTable2("DTLANC") = xcel.Cells(L, 4).Value
RsTable2("DTEMISSAO") = xcel.Cells(L, 5).Value
RsTable2("CENTRO") = xcel.Cells(L, 6).Value
RsTable2("NUMDOCU") = xcel.Cells(L, 7).Value
RsTable2("NUMITEMDOC") = xcel.Cells(L, 8).Value
RsTable2("CRIARDT") = xcel.Cells(L, 9).Value
RsTable2("CATEGORIA") = xcel.Cells(L, 10).Value
RsTable2("MATRICULA") = xcel.Cells(L, 11).Value
RsTable2("LOCALNEGOCIO") = xcel.Cells(L, 12).Value
RsTable2.Update
Wend
strvalor = SysCmd(acSysCmdClearStatus)
Next I
'Fecha a tabela
Set RsTable2 = Nothing
End If
'Fecha o arquivo do Excel
xcel.ActiveWorkbook.Close True
xcel.Quit
Set xcel = Nothing
Não estou sabendo como faço o loop no excel e quantos registros tem em cada planilha.
cmbsheet é onde eu informo o numero de planilhas
é do tipo integer. cmbsheet não é uma variável, é uma combox
e nela eu informo de 1 a 20 o numero de planilhas
o for next irá rodar de acordo com esse número.
é isso.