VBA Excel - Conectando planilhas com tabelas do MS Access.

Inline image 1

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!

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 + 1
        
        ReDim Preserve nFile(1 To intFile)
        
        Let nFile(intFile) = nArq
        Let nArq = Dir()
    Wend
    
    ' Verifica se achou o arquivo.
    If intFile = 0 Then
        MsgBox "Nenhum arquivo encontrado!", vbCritical, ".: A&A"
        Exit Sub
    End 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 = 1
    Let FinLine = 50
    
    ' Colunas
    Let 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, nFrase
    Next
    
    MsgBox UBound(nFile) & " Arquivos 'Linkados'", vbInformation, ".: A&A"
End Sub

Tags: Excel, Access, udf, import, data, conect, directory, TransferSpreadSheet

Inline image 2

André Luiz Bernardes
bernardess@gmail.com


Nenhum comentário:

Postar um comentário

diHITT - Notícias