MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

2 participantes

    Importar planilha do Excel com três abas

    avatar
    EliasSantos
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 36
    Registrado : 01/10/2011

    Importar planilha do Excel com três abas Empty Importar planilha do Excel com três abas

    Mensagem  EliasSantos 19/3/2021, 20:58

    Boa noite a todos!

    Meu sistema importa os dados de uma planilha de excel, até aqui era uma planilha simples com apenas uma aba, agora tive que acrescentar mais duas abas e precisava importar os dados de cada aba para uma tabela diferente, teria como fazer isso no VBA?

    O código que estava usando para importar uma aba era este:

    Dim strPathFile As String, strFile As String, strPath As String
    Dim strTable As String
    Dim blnHasFieldNames As Boolean
    blnHasFieldNames = True 'Como True se contiver nomes de campos na prim. linha
    strPath = "X:\LS\" ' drive onde se situa o seu documento excel
    strTable = "TB_CHK" 'nome da tabela no seu banco
    strFile = Dir(strPath & "*.xlsx, ChkList") '"*.xlsx" importa todas as folhas excel _
    que estiverem na pasta para a tabela do banco.
    Do While Len(strFile) > 0
    strPathFile = strPath & strFile
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
    strTable, strPathFile, blnHasFieldNames
    strFile = Dir()
    Loop

    As três abas são: Autos, ChkList e Funcionários

    Desde já obrigado a todos!
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3059
    Registrado : 13/12/2016

    Importar planilha do Excel com três abas Empty Re: Importar planilha do Excel com três abas

    Mensagem  Alexandre Fim 19/3/2021, 22:10

    Elias boa noite,

    Para importar várias "sheets", é necessário referenciar o Excel e seus objetos.

    Veja este exemplo te ajuda:
    https://www.maximoaccess.com/t4276-resolvido-importar-varios-sheets-de-varias-planilhas-excel-para-uma-so-tabela-no-ms-access


    Boa sorte

    Fim


    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    Importar planilha do Excel com três abas Setinf11
    Sistemas e Tecnologia Ltda

    Ronibarros gosta desta mensagem

    avatar
    EliasSantos
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 36
    Registrado : 01/10/2011

    Importar planilha do Excel com três abas Empty Re: Importar planilha do Excel com três abas

    Mensagem  EliasSantos 20/3/2021, 12:43

    Muito obrigado, Alexandre

    Foi muito útil

    Deu certo assim:

    Dim appExcel As Excel.Application
    Dim wb As Excel.Workbook
    Dim sh As Excel.Worksheet
    Dim strValue As String
    Dim strTable As String
    DoCmd.SetWarnings False
    DoCmd.OpenQuery "CS_EXCLUI", acViewNormal
    DoCmd.SetWarnings True

    strTable = "TB_CHK" 'nome da tabela no seu banco
    Set appExcel = CreateObject("Excel.Application")
    Set wb = appExcel.Workbooks.Open("X:\LS_TESTE\PlanilhaTeste.xlsx") 'nome do seu excel e seu diretorio
    For Each sh In wb.Sheets
    Debug.Print sh.Name
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, strTable, "X:\LS_TESTE\PlanilhaTeste.xlsx", True, sh.Name & "!"
    Next
    wb.Close
    appExcel.Quit
    On Error GoTo 0
    Exit Sub

    Importou todos os sheets (nem conhecia essa palavra rs) para uma tabela só. Quanto a isso está tranquilo que dá pra resolver com consultas ação.

    Gostaria de fazer mais uma pergunta:
    Teria como alterar essa linha para importar de mais de uma planilha na pasta, pq são cinco setores me enviando as planilhas:

    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, strTable, "X:\LS_TESTE\PlanilhaTeste.xlsx", True, sh.Name & "!"


    Tentei assim, mas não importa:
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, strTable, ("X:\LS_TESTE\" & "*.xls"), True, sh.Name & "!"

    Muito grato

    Ronibarros gosta desta mensagem


      Data/hora atual: 9/12/2023, 12:42