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 10 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: Sex 26 Maio 2017, 17:38