MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    Pular linha e Importar xlsx para o Access

    Compartilhe

    bobducs
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 11/07/2016

    Pular linha e Importar xlsx para o Access

    Mensagem  bobducs em Sex 11 Nov 2016, 14:02

    Olá pessoal, tudo bem?

    Vou recorrer a vocês, mestres do Access Smile

    Estou com uma dúvida sobre como importar um Excel com extensão xlsx e que possui informações nas primeiras 9 linhas que precisam ser desconsideradas. Estou com uma programação em vba que faz todo este trabalho, mas com arquivo txt, mas pra xlsx não consegui. Sad
    Busquei a solução aqui no forum mas não achei informações que pudessem me ajudar...

    Código para importação de txt:

    Código:

    Option Compare Database

    Public Function Importar_login_logout()
    Dim strFile As String
    Dim Linha As String
    Dim rs As DAO.Recordset
    Dim Matriz() As String
    Dim strsql As String

    strPath = "S:\PRD\SAP\CRM\Analitico\IO\Workcenter\DetalhamChatsTratados"
    F = FreeFile
    Set rs = CurrentDb.OpenRecordset("tbl_teste")

    If Weekday(Date, vbSunday) = 2 Then

    strFile1 = Dir(strPath & "\" & "Detalhado_Chat_" & Day(Date - 2) & Month(Date) & Year(Date) & "*.xlsx") 'nome do seu excel, se mudar para "*.xls" importa todas as folhas excel que estiverem em C:\ para a _ tabela do banco.
    strPathFile1 = strPath & strFile1

    strFile2 = Dir(strPath & "\" & "Detalhado_Chat_" & Day(Date - 1) & Month(Date) & Year(Date) & "*.xlsx") 'nome do seu excel, se mudar para "*.xls" importa todas as folhas excel que estiverem em C:\ para a _ tabela do banco.
    strPathFile2 = strPath & strFile2

    strFile3 = Dir(strPath & "\" & "Detalhado_Chat_" & Day(Date) & Month(Date) & Year(Date) & "*.xlsx") 'nome do seu excel, se mudar para "*.xls" importa todas as folhas excel que estiverem em C:\ para a _ tabela do banco.
    strPathFile3 = strPath & strFile3
    F = FreeFile
    Set rs = CurrentDb.OpenRecordset("TB_Login_Logout")

    Open strPathFile1 For Input As #F

    Line Input #F, Dummy1 ' Pula a 1ª linha
    Line Input #F, Dummy2 ' Pula a 2ª linha
    Line Input #F, Dummy3 ' Pula a 3ª linha
    Line Input #F, Dummy4 ' Pula a 4ª linha
    Line Input #F, Dummy5 ' Pula a 5ª linha
    Line Input #F, Dummy6 ' Pula a 6ª linha
    Line Input #F, Dummy7 ' Pula a 7ª linha
    Line Input #F, Dummy8 ' Pula a 8ª linha
    Line Input #F, Dummy9 ' Pula a 9ª linha

    Do While Not EOF(F) ' Começa a importação a partir da 10ª linha

    Line Input #F, Linha  'lê uma linha do arquivo Excel
    Matriz() = Split(Linha, vbTab)
    rs.AddNew
    rs!Protocolo = Matriz(0)
    rs!Segmento = Matriz(1)
    rs!Entrada_no_Sistema = Matriz(2)
    rs.Update
    Loop
    Close #F

    Open strPathFile2 For Input As #F

    Line Input #F, Dummy1 ' Pula a 1ª linha
    Line Input #F, Dummy2 ' Pula a 2ª linha
    Line Input #F, Dummy3 ' Pula a 3ª linha
    Line Input #F, Dummy4 ' Pula a 4ª linha
    Line Input #F, Dummy5 ' Pula a 5ª linha
    Line Input #F, Dummy6 ' Pula a 6ª linha
    Line Input #F, Dummy7 ' Pula a 7ª linha
    Line Input #F, Dummy8 ' Pula a 8ª linha
    Line Input #F, Dummy9 ' Pula a 9ª linha

    Do While Not EOF(F) ' Começa a importação a partir da 5ª linha

    Line Input #F, Linha  'lê uma linha do arquivo Excel
    Matriz() = Split(Linha, vbTab)
    rs.AddNew
    rs!Protocolo = Matriz(0)
    rs!Segmento = Matriz(1)
    rs!Entrada_no_Sistema = Matriz(2)
    rs.Update
    Loop
    Close #F

    Open strPathFile3 For Input As #F

    Line Input #F, Dummy1 ' Pula a 1ª linha
    Line Input #F, Dummy1 ' Pula a 1ª linha
    Line Input #F, Dummy2 ' Pula a 2ª linha
    Line Input #F, Dummy3 ' Pula a 3ª linha
    Line Input #F, Dummy4 ' Pula a 4ª linha
    Line Input #F, Dummy5 ' Pula a 5ª linha
    Line Input #F, Dummy6 ' Pula a 6ª linha
    Line Input #F, Dummy7 ' Pula a 7ª linha
    Line Input #F, Dummy8 ' Pula a 8ª linha
    Line Input #F, Dummy9 ' Pula a 9ª linha

    Do While Not EOF(F) ' Começa a importação a partir da 5ª linha

    Line Input #F, Linha  'lê uma linha do arquivo Excel
    Matriz() = Split(Linha, vbTab)
    rs.AddNew
    rs!Protocolo = Matriz(0)
    rs!Segmento = Matriz(1)
    rs!Entrada_no_Sistema = Matriz(2)
    rs.Update
    Loop
    Close #F
    rs.Close
    MsgBox "Final de Semana Atualizado com Sucesso!"

    Else

    strFile = Dir(strPath & "\" & "Detalhado_Chat_" & Day(Date) & Month(Date) & Year(Date) & "*.xlsx")
    strPathFile = strPath & "\" & strFile

    Open strPathFile For Input As #F

    Line Input #F, Dummy1 ' Pula a 1ª linha
    Line Input #F, Dummy1 ' Pula a 1ª linha
    Line Input #F, Dummy2 ' Pula a 2ª linha
    Line Input #F, Dummy3 ' Pula a 3ª linha
    Line Input #F, Dummy4 ' Pula a 4ª linha
    Line Input #F, Dummy5 ' Pula a 5ª linha
    Line Input #F, Dummy6 ' Pula a 6ª linha
    Line Input #F, Dummy7 ' Pula a 7ª linha
    Line Input #F, Dummy8 ' Pula a 8ª linha
    Line Input #F, Dummy9 ' Pula a 9ª linha


    Coloquei o banco e o arquivo em anexo para ajudar contextualizar minha situação.
    Muito obrigado desde já!
    Anexos
    Base do Workcenter.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (218 Kb) Baixado 8 vez(es)

    bobducs
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 11/07/2016

    Re: Pular linha e Importar xlsx para o Access

    Mensagem  bobducs em Sex 11 Nov 2016, 18:00

    Oi pessoal, tudo bem?

    Consegui uma macro que faz a remoção de quantas linhas desejar e depois ele salva o arquivo e em seguida posso exportar no Access!!! bounce

    Segue código que utilizei:

    Código:

    Option Compare Database

    Function Teste()

    Dim objXL As Object
    Dim xlWB As Object
    Dim xlWS As Object

    Set objXL = CreateObject("Excel.Application")

    Set xlWB = objXL.Workbooks.Open("Caminho do Excel\Detalhado_Chat_11112016.xlsx")

    Set xlWS = xlWB.Worksheets(1)

    xlWS.Rows("1:9").Select 'linhas que desejo deletar
    objXL.Selection.Delete Shift:=-4162

    xlWB.Save
    xlWB.Close
    objXL.Quit

    Set obXL = Nothing

    End Function


    Testei aqui e funcionou, agora vou adaptar no meu código de importação e deixar o banco funcionando ainda hoje!
    Se tiverem outro jeito de fazer, por favor, adicionem aqui para aprendermos Wink

    Abraço!

      Data/hora atual: Dom 23 Abr 2017, 06:28