Segue parte de um código que pode usar para conectar todas as planilhas do MS Excel que estiverem disponíveis no mesmo diretório, a uma base de dados MS Access.
Este código assume que os cabeçalhos estão na primeira linha da planilha. Divirta-se!
Este código assume que os cabeçalhos estão na primeira linha da planilha. Divirta-se!
Sub LinkXls()' Loop num diretório específico (nPath)' linkando todos os arquivos MS Excel como tabelas no MS Access.Const nPath As String = "C:\tmp\XLs\" 'Diretório.Dim nArq As String ' Nomes dos arquivos.Dim nFile() As String ' Array com os arquivos.Dim intFile As Integer ' Número de arquivos.Dim IniLine As String ' Limita Range.Dim FinLine As String ' "Dim IniColumn As String ' "Dim FinColumn As String ' "Dim nFrase As String ' Frase de definição.'Loop na pasta e construção da lista de arquivos.Let nArq = Dir(nPath & "*.xls")While nArq <> ""'Adicionando arquivos à lista.Let intFile = intFile + 1ReDim Preserve nFile(1 To intFile)Let nFile(intFile) = nArqLet nArq = Dir()Wend' Verifica se achou o arquivo.If intFile = 0 ThenMsgBox "Nenhum arquivo encontrado!", vbCritical, ".: A&A"Exit SubEnd If' Define tamanho do range a ser conectado, considerando a primeira linha como título.' IniLine - Linha inicial.' FinLine - Linha final.' IniColumn - Coluna inicial.' FinColumn - Coluna final.'Linhas.Let IniLine = 1Let FinLine = 50' ColunasLet IniColumn = "A"Let FinColumn = "J"Let nFrase = IniLine & IniColumn & FinLine & FinColumn' Inicia o ciclo de conexções na base de dados MS Access.For intFile = 1 To UBound(nFile)DoCmd.TransferSpreadsheet acLink, , nFile(intFile), nPath & nFile (intFile), True, nFraseNextMsgBox UBound(nFile) & " Arquivos 'Linkados'", vbInformation, ".: A&A"End Sub
Tags: Excel, Access, udf, import, data, conect, directory, TransferSpreadSheet
André Luiz Bernardes
bernardess@gmail.com
Nenhum comentário:
Postar um comentário