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

    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    avatar
    Convidado
    Convidado


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Convidado 28/1/2014, 17:47

    Bem amigos.. Confesso que nunca havia precisado disto.. Mas chegou a hora..

    Vi alguns tópicos mas ainda estou confuso..
    Como importar apartir da Linha de número 10... até uma determinada linha neste ficheiro?

    https://dl.dropboxusercontent.com/u/26441349/Bradesco_24012014_122652.xls

    Grato pela Ajuda.
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Dilson 28/1/2014, 18:13

    Olá Harysohn,

    Logo de cara o que me veio foi importar tudo e a partir de uma tabela fazer o tratamento por loop usando for next e nisso ia transferindo para a tabela de destino.

    Vamos aguardar outras sugestões, senão vamos tentar.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  criquio 28/1/2014, 18:15

    E aí FREEDOM, tudo na paz? HEHEHE

    Precisa importar até chegar na linha do total? Se for, podes declarar os objetos Excel normalmente como deves ter visto nos exemplos pesquisados e fazer um For... Next ou um Do... While até encontrar a linha aonde está o total. E então mandar importar no Access da linha 10 até a 10 + N.

    Veja se isso clareia um pouco as ideias aí Laughing


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  criquio 28/1/2014, 18:58

    Veja um pequeno exemplo que pega os dados e joga em um campo de nome txtResultado:

    Código:
        Dim rs As Recordset, N As Integer, oApp As Object, Lista As String

        Set rs = CurrentDb.OpenRecordset("tbl")
        Set oApp = CreateObject("Excel.Application")
        N = 10

        oApp.workbooks.Open CurrentProject.Path & "\Bradesco_24012014_122652.xls"
        oApp.Visible = False
        oApp.Worksheets("Sheet0").Activate

        Do While oApp.ActiveSheet.Range("A" & N) <> "total"
            Lista = Lista & "A" & N & " - " & oApp.ActiveSheet.Range("A" & N) & vbCrLf
            N = N + 1
        Loop

        Me.txtResultado = Lista

        rs.Close
        Set rs = Nothing

        oApp.Application.Quit
        Set oApp = Nothing

    Eu declarei o Recordeset mas não usei. Foi só para exemplificar mesmo.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  criquio 28/1/2014, 19:45

    Se for para pegar todas as linhas aonde A(n) for data, pode usar uma linha que detecta a última célula não nula da coluna e testar se A(n) é data. Se for, entra no esquema:

    Código:
       Dim rs As Recordset, N As Integer, oApp As Object, Lista As String, uCell As Double

        Set rs = CurrentDb.OpenRecordset("tbl")
        Set oApp = CreateObject("Excel.Application")

        oApp.workbooks.Open CurrentProject.Path & "\Bradesco_24012014_122652.xls"
        oApp.Visible = False
        oApp.Worksheets("Sheet0").Activate

        uCell = oApp.Worksheets("Sheet0").Range("A" & Rows.Count).End(xlUp).Row ' uCell será o número da última célula não nula da coluna A

        For N = 10 To uCell
            If IsDate(oApp.ActiveSheet.Range("A" & N)) Then
                Lista = Lista & "A" & N & " - " & oApp.ActiveSheet.Range("A" & N) & vbCrLf
            End If
        Next

        Me.txtResultado = Lista

        rs.Close
        Set rs = Nothing

        oApp.Application.Quit
        Set oApp = Nothing

    Não custa lembrar que deves marcar a referência do Excel. Não fosse a linha que testa a última linha não nula até passaria sem marcar a referência, mas como tem essa linha de código, tem que referenciar senão não funciona essa parte Very Happy


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Convidado
    Convidado


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Convidado 28/1/2014, 22:07

    Ok Mestre, este último código resultou...

    Uma questão apenas...

    Os últimos lançamentos também deverão serem computados.. Como pular as linhas desnecessarias?


    22/01/2014PAGTO ELETRONICO TRIBUTO NET EMPR LIC ELET NFI98881219888-447,26-1.261,58
    Total58.556,00-82.135,77-1.261,58
    Últimos Lançamentos
    DataLançamentoDcto.Crédito (R$)Débito (R$)Saldo (R$)
    22/01/2014SALDO ANTERIOR-1.261,58
    24/01/2014TRANSF.AUTORIZ.ENTRE C/C FUNDACAO JOAO PAULO II33731875.217,503.955,92
    Total5.217,500,003.955,92
    avatar
    Convidado
    Convidado


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Convidado 28/1/2014, 22:21

    Boas Grande Dilson!!!.. Foi realmente o que falou..
    Obrigado pela dica.

    Cumprimentos.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  criquio 28/1/2014, 23:24

    Não entendi muito bem. Nos meus testes pega todas as linhas cuja célula da coluna A seja data. Ou seja, vai pular aonde não tiver data e vai pular células vazias até chegar na última célula não vazia da coluna A.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Convidado
    Convidado


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Convidado 29/1/2014, 07:49

    Hum,,,, vou testar aqui... Logo dou retorno.

    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Convidado 29/1/2014, 14:15

    Quanto ao suscitado acima está ok no entanto as datas estão sendo importadas de maneira incorreta.. No extrato não há datas com mes superior a 1

    Veja a tabela

    Cópia de tblMovimento_Banco[th]IdMovimento[/th][th]IdCaixa[/th][th]Historico[/th][th]DataMovimento[/th][th]ValorCredito[/th][th]ValorDebito[/th]
    4781TARIFA BANCARIA PAGAMENTO FUNCs NET EMPRESA22/01/20140,006,00
    4791PAGTO ELETRONICO TRIBUTO NET EMPR LIC ELET NFI988822/01/20140,00447,26
    4801TRANSF.AUTORIZ.ENTRE C/C FUNDACAO JOAO PAULO II24/01/20145.217,500,00
    3231CARTAO VISA ELECTRON MARIA AMELIA AUTO PO01/02/20140,0030,00
    3241ENCARGOS LIMITE DE CRED ENCARGO - 07,88%01/02/20140,001,79
    3261TRANSF FDOS DOC-E H BANK DEST.MARIA GORETE FLORE01/03/20140,001.000,00
    3271TRANSF CC PARA CC PJ GAD FLORENCIO SOARES E OU01/03/20140,001.000,00
    3281TRANSF CC PARA CP PJ NOE SOARES DE OLIVEIRA01/03/20140,00250,00
    3291DOC/TED INTERNET DOC INTERNET01/03/20140,007,35
    3301IOF S/ UTILIZACAO LIMITE01/03/20140,002,73
    3311CHEQUE COMPENSADO01/03/20140,00900,00
    3331PAGTO ELETRON COBRANCA SEMETRA01/06/20140,00217,42
    3341PAGTO ELETRON COBRANCA BILHETE UNICO MARIO01/06/20140,0080,00
    3351PAGTO ELETRON COBRANCA BILHETE UNICO JONATHAN01/06/20140,0080,00
    3361PAGTO ELETRON COBRANCA BILHETE UNICO ANDERSON01/06/20140,0080,00
    3371CARTAO VISA ELECTRON POSTO BARRACUDA01/06/20140,0060,00
    3381TRANSF CC PARA CC PJ DENISE ROCHA DE ARAUJO01/06/20140,0060,00
    3391PAGTO ELETRON COBRANCA SINDICATO01/07/20140,00223,34
    3401PAGTO ELETRON COBRANCA CHIAROTTI01/07/20140,00860,00
    3411PAGTO ELETRON COBRANCA B.A DE SOUZA01/07/20140,00800,00
    3421TRANSF FDOS DOC-E H BANK DEST.Wedna Flavia da Silva01/07/20140,00826,57
    3431PAGTO ELETRONICO TRIBUTO INTERNET --FGTS/GRF S/TOMADOR01/07/20140,003.754,95
    3441TRANSF CC PARA CC PJ JONATHAN FERREIRA TEIXEIRA01/07/20140,00854,51
    3451TRANSF CC PARA CC PJ LUIZ CARLOS MUNIZ DE ANDRA01/07/20140,001.571,41
    3461TRANSF CC PARA CC PJ AMANDA VITORIO RODRIGUES01/07/20140,00521,81
    3471TRANSF CC PARA CC PJ ROBERTO DA SILVA SOUSA01/07/20140,001.112,96
    3481TRANSF CC PARA CC PJ DENISE ROCHA DE ARAUJO01/07/20140,00248,74
    3491TRANSF CC PARA CC PJ LEANDRO DE SOUZA MONTEIRO01/07/20140,001.281,41
    3501TRANSF CC PARA CC PJ JORGE LUIS DA SILVA DE OLI01/07/20140,00910,47
    3511TRANSF CC PARA CC PJ JONATHAN FRANCISCO DE OLIVEIRA S01/07/20140,00457,04
    3521TRANSF CC PARA CC PJ BRUNA TAVARES FERREIRA DA01/07/20140,00500,80
    3531TRANSF CC PARA CC PJ SAMUEL ALVES RIBEIRO01/07/20140,00681,75
    3541TRANSF CC PARA CC PJ PAULO ALMEIDA SILVA01/07/20140,00816,45
    3551TRANSF CC PARA CC PJ CENTRO TECNICO AUTOMOTIVO01/07/20140,00286,00
    3561TRANSF CC PARA CC PJ FRANCISCO JACINTO SILVA01/07/20140,00880,00
    3571TRANSF CC PARA CC PJ REGIANE DA SILVA OLIVEIRA01/07/20140,00368,82
    avatar
    Convidado
    Convidado


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Convidado 29/1/2014, 14:30

    O interessante é que ele inverte apenas as datas com o dias de 01 a 10...

    Cumprimentos
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  criquio 29/1/2014, 14:31

    Talvez seja o caso de tentar um Mid para pegar na ordem correta:

    Código:
    rs!Data = Mid(oApp.ActiveSheet.Range("A" & N), 1, 3) & Mid(oApp.ActiveSheet.Range("A" & N), 4, 3) & Mid(oApp.ActiveSheet.Range("A" & N), 7, 4)

    Veja se algo do tipo dá certo.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Convidado
    Convidado


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Convidado 29/1/2014, 14:42

    So que o seguinte amigão...

    O código exibe a data correta.. mas na hora de gravar na tabela dos dias 01 a 10.. fica invertido...
    Ja formatei e nada...

    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Convidado 29/1/2014, 15:17

    A data na instrução INSERT INTO estava entre cerquilas: #" & dtData & "#

    Alterei para: """ & dtData & """ e resolveu


    Código completo:


    Private Sub btnImpExtrato_Click()
          Dim MSG         As String
          '-----------------------------------------------------------------------------------
          'Se não fora selecionado um banco na caixa de combinação emite aviso e encerra a sub
          '-----------------------------------------------------------------------------------
          '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    10    On Error GoTo TrataErro
          Dim NomeProcedimento As String
    20        NomeProcedimento = "btnImpExtrato_Click"
              'Adiciona o nome do procedimento à função
    30        PegaProcedimento (NomeProcedimento)
          '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    40    If Len("" & Me.cboBanco) = 0 Then
    50        MsgBox "É necessário selecionar um banco!", vbCritical, "ATENÇÃO"
    60        Me.cboBanco.SetFocus
    70        Me.cboBanco.Dropdown
    80        Exit Sub
    90    End If
          '--------------------------------------------------
          'Mensagem de confirmação para importação do extrato
          '--------------------------------------------------
    100   MSG = MsgBox("Deseja importar o extrato do Excell?", vbYesNo + vbQuestion, "IMPORTAR EXTRATO")
    110       Select Case MSG
                  Case vbYes
                      '---------------------------------------------
                      'Ativa a mensagem de aviso sobre  a importação
                      '---------------------------------------------
    120               Me.lbAviso.Visible = True
    130               Me.lbAviso.Caption = "Aguarde, importando extrato...."
                      '-------------------------------------
                      'Aplica a ampulheta no cursor do mouse
                      '-------------------------------------
    140               Screen.MousePointer = 11
                      '*****************************************************************
                      'Códigos para abrir o arquivo
                      Dim Caminho As String, StrArquivo As String
                      Dim Titulo As String, filtro As String, NovoCaminho As String
                     
    150               filtro = "Arquivos do Excell (*.xls)" & Chr(0) & "*.xls" & Chr(0)
    160               Titulo = "Selecione o Extrato..."
    170               Caminho = "C:\"
    180               Caminho = LocalizarArquivo(Caminho, Titulo, filtro)
    190               StrArquivo = Mid(Caminho, InStrRev(Caminho, "\") + 1)
    200               Me.txtCaminho = Caminho
    210               Me.txtArquivo = StrArquivo
                     
                      '------------------------------------------------
                      'Variáveis para a importação do arquivo em excell
                      '------------------------------------------------
                      Dim N As Integer, oApp As Object, Lista As String, uCell As Double
                      '---------------------------------------------------------
                     'Variáveis que receberão a informação das células do Excell
                      '---------------------------------------------------------
                      Dim ID_Banco As Byte, dblCredito As Double, dblDebito As Double, StrHistorico As String, StrDoc As String
                      Dim nCount As Integer, dtData
                      '-----------------------
                      'Seto o objeto do Excell
                      '-----------------------
    220               Set oApp = CreateObject("Excel.Application")
                      '-------------------------------------------------
                      'Abre a caixa de diálogo para selecionar o arquivo
                      '-------------------------------------------------
                     
                     
                      'StrTable = "tblExemplo" 'nome da tabela no seu banco
    230               oApp.Workbooks.Open Me.txtCaminho
    240               oApp.Visible = False
    250               oApp.Worksheets("Sheet0").Activate

    260               uCell = oApp.Worksheets("Sheet0").Range("A" & Rows.Count).End(xlUp).Row ' uCell será o número da última célula não nula da coluna A

    270               For N = 11 To uCell
                     ' MsgBox oApp.ActiveSheet.Range("A" & N) & "- " & oApp.ActiveSheet.Range("B" & N)
                          '-------------------------------------------------
                          'Verifico se a célula contém um campo do tipo Data
                          '-------------------------------------------------
    280                   If IsDate(oApp.ActiveSheet.Range("A" & N)) Then
                              '------------------------------------------------------------------
                              'Verifica o comprimento dos ranges Credito e Debito para em sendo 0
                              'remeterá para o rótulo continua
                              '------------------------------------------------------------------
    290                       If Len("" & oApp.ActiveSheet.Range("C" & N)) = 0 And Len("" & oApp.ActiveSheet.Range("D" & N)) = 0 Then
    300                           GoTo Pula
    310                       End If
                              '---------------------------------------------------------------------------
                              'Verifico o comprimento do Range Credito na planilha, em sendo 0 é um débito
                              '---------------------------------------------------------------------------
    320                       If Len("" & oApp.ActiveSheet.Range("D" & N)) > 0 Then
                                  '----------------------------------------------------------------------
                                  'Aplica nas variáveis os respectivos valores condizentes com as células
                                  '----------------------------------------------------------------------
    330                           ID_Banco = Me.cboBanco.Column(0)
    340                           dtData = oApp.ActiveSheet.Range("A" & N)
    350                           StrHistorico = oApp.ActiveSheet.Range("B" & N)
    360                           StrDoc = oApp.ActiveSheet.Range("C" & N)
    370                           dblCredito = oApp.ActiveSheet.Range("D" & N)
    380                           dblDebito = 0
                                  '---------------------------
                                  'Insere os valores na tabela
                                  '---------------------------
    390                           CurrentDb.Execute "INSERT INTO tblMovimento_Banco (idCaixa, Historico, DataMovimento, ValorCredito, ValorDebito, NumDoc, TipoDoc, cpTipoID)" _
                                                  & "Values (""" & ID_Banco & """, """ & StrHistorico & """, """ & dtData & """, """ & dblCredito & """," _
                                                  & """" & dblDebito & """, """ & StrDoc & """,'1', '1')"
    400                       Else
                                  '----------------------------------------------------------------------
                                  'Aplica nas variáveis os respectivos valores condizentes com as células
                                  '----------------------------------------------------------------------
    410                           ID_Banco = Me.cboBanco.Column(0)
    420                           dtData = oApp.ActiveSheet.Range("A" & N)
    430                           StrHistorico = oApp.ActiveSheet.Range("B" & N)
    440                           StrDoc = oApp.ActiveSheet.Range("C" & N)
    450                           dblCredito = 0
    460                           dblDebito = Mid(oApp.ActiveSheet.Range("E" & N), 2, Len(oApp.ActiveSheet.Range("E" & N)))
                                  '---------------------------
                                  'Insere os valores na tabela
                                  '---------------------------
    470                           CurrentDb.Execute "INSERT INTO tblMovimento_Banco (idCaixa, Historico, DataMovimento, ValorCredito, ValorDebito, NumDoc, TipoDoc, cpTipoID)" _
                                                  & "Values (""" & ID_Banco & """, """ & StrHistorico & """,""" & dtData & """, """ & dblCredito & """," _
                                                  & """" & dblDebito & """, """ & StrDoc & """,'2', '1')"
    480                       End If
    490                   End If
                          '----------------------------------------------------------
                          'Incrementa o contador para verificar a última linha válida
                          '----------------------------------------------------------
    500                   nCount = nCount + 1
          '-----------------------------------------------------------------------------------
          'Rótulo par aonde é direcionado o código caso os ranges Credito e Debito sejam nulos
          '-----------------------------------------------------------------------------------
    Pula:
    510               Next
                      '---------------------------------------------------------
                      'Adiciona na tabela o registro da última importação valida
                      '---------------------------------------------------------
    520               CurrentDb.Execute "INSERT INTO tblMarcaDiaExtrato (Banco_ID, cpDataUltimaImportacao, cpDescricao, cpNumDoc, cpNomeArquivo) Values " _
                                      & " (""" & ID_Banco & """, #" & dtData & "#, """ & StrHistorico & """,""" & StrDoc & """, """ & Me.txtArquivo & """)"
                      '-------------------------------------
                      'Remove a ampulheta no cursor do mouse
                      '-------------------------------------
    530               Screen.MousePointer = 0
                      '---------------------
                      'Mensagem de conclusão
                      '---------------------
    540               MsgBox "Extrato importado com Sucesso!", vbInformation, "PRONTO"
                      '-----------------------------------------------
                      'Destiva a mensagem de aviso sobre  a importação
                      '-----------------------------------------------
    550               Me.lbAviso.Visible = False
                      '--------------------------------------------
                      'Termina a aplicação Excell e limpa ao objeto
                      '--------------------------------------------
    560               oApp.Application.Quit
    570               Set oApp = Nothing
    580           Case vbNo
    590       End Select
    600   Exit Sub
          '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          'Tratamento de Erros
          '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Exit_TrataErro:
    610       DoCmd.Hourglass False
    620       DoCmd.Echo True
    630   Exit Sub
    TrataErro:
    640       Select Case err.Number
                  Case 1004
                      '-----------------------------------------------------
                      'Emite mensagem de erro visto que o objeto Rows falhou
                      '-----------------------------------------------------
    650               MsgBox "É necessário fechar e reabrir o formulário", vbCritical, "ERRO NA PLANILHA"
                      '--------------------------------------------
                      'Termina a aplicação Excell e limpa ao objeto
                      '--------------------------------------------
    660               oApp.Application.Quit
    670               Set oApp = Nothing
                      '-------------------------------------
                      'Remove a ampulheta no cursor do mouse
                      '-------------------------------------
    680               Screen.MousePointer = 0
                      '---------------------
    690               MsgBox "Cancelado pelo Usuário!", vbInformation, "CANCELADO"
    700               Exit Sub
    710           Case Else
    720             DoCmd.Hourglass False
    730             DoCmd.Echo True
                   'Chama a função global de tratamento de erros
    740            GlobalErrHandler (Me.Name)
    750            Resume Exit_TrataErro
    760       End Select
    End Sub


    Obrigado a todos pela Ajuda!.

    Cumprimentos.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  criquio 29/1/2014, 15:54

    Grato pelo retorno. O fórum agradece Razz


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Convidado
    Convidado


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Convidado 29/1/2014, 21:07

    cheers  cheers  cheers
    avatar
    Convidado
    Convidado


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Convidado 29/1/2014, 23:21

    Grande Criquio.. uma Questã.... Após concluir o código o Excel ainda permanece ativo no gerenciador de tarefas...

    O que fazer?

    Tenho um código que mata o processo.. há outra forma?


    Cumprimentos.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  criquio 30/1/2014, 00:17

    Acho que cometi uma falha no processo. Tente retirar o Application da linha que dá o Quit:

    oApp.Quit

    Mais um detalhe. Estamos criando uma instância do Excel com o Create. No entanto é melhor, antes, usarmos um GetObject para ver se já tem uma instância do Excel nos processos. Caso já tenha não há a necessidade de criá-la. Isso tambem é importante pelo seguinte motivo: imagine que há um arquivo do Excel aberto e que não pode ser fechado. Se simplesmente darmos um Quit, lá se vai um probleminha básico. Já fazendo a verificação antes, só daremos o Quit caso tenhamos criado a instância. Caso ela já existia, significando que já tinha um arquivo aberto, não daremos o Quit.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Convidado
    Convidado


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Convidado 30/1/2014, 09:01

    Desenhe pra mim por gentileza hehehehe


    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Convidado 30/1/2014, 09:40

    Amigão... Começou a gerar um erro e não sei o que fazer..

    Erro 462: A máquina do servidor remoto não existe ou não está disponível


    E depura para a linha:

    310               uCell = oApp.Worksheets("Sheet0").Range("A" & Rows.Count).End(xlUp).Row ' uCell será o número da última célula não nula da coluna A


    O QUe seria?

    Cumprimenos.
    avatar
    Convidado
    Convidado


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Convidado 30/1/2014, 10:34

    Estou vendo este link porém não estou conseguindo adaptar:

    http://support.microsoft.com/default.aspx?kbid=178510


    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Convidado 30/1/2014, 10:41

    Renomeei o objeto para oAppExcel e funcionou.. mas dá o erro 1004 ...

    Erro em tempo de execução '1004':
    Método '' do objeto '_Global' falhou


    Cumprimentos
    avatar
    Convidado
    Convidado


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Convidado 30/1/2014, 10:49

    Tentei assim mas dá subscrito fora do intervalo

    uCell = oAppExcel.Worksheets("Sheet0").Range(oAppExcel.Worksheets("Sheet1").Cells("A" & Rows.Count)).End(xlUp).Row ' uCell será o número da última célula não nula da coluna A


    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Convidado 30/1/2014, 11:05

    Executa o código uma vez.. na segunda dá o erro...

    Não adianta o que eu faça... Não sei mais o que fazer...

    Agradecia vossa ajuda.

    Cumprimentos.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  criquio 30/1/2014, 11:47

    Isso é por causa do processo pendurado. A alteração que mencionei seria no final do código, mudando oApp.Application.Quit para oApp.Quit:

    oApp.Quit
    Set oApp = Nothing


    Assim, deve excluir o processo da lista de processos ativos.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Convidado
    Convidado


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Convidado 30/1/2014, 13:09

    oAppExcel.Application.Quit >>>  não encerra o aplicativo

    oAppExcel.Quit >>>  O Código para aqui.. e não emite erro algum.


    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Convidado 30/1/2014, 14:53

    Não deu mesmo não consigo encerrar o processo..


    Tem algo haver com a variável oApp
    Eu consegui encerrar o processo através do código TaskHill...porém ao executar a segunda vez dá o erro..
    So fechando o banco e reabrindo para conseguir novamente..

    Já to ficando louco aqui..

    Cumprimentos
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  criquio 30/1/2014, 15:00

    Bem, entramos naquela situação que mencionei sobre o GetObject e o CreateObject. O que acontece é que o Access cria o objeto na primeira vez. Aí, da segunda em diante, ele tenta criar um objeto que já foi criado. Então, vamos condicionar a criar o objeto caso ele não exista. Caso já exista, usaremos o GetObject para capturá-lo:

    Código:
        Set oApp = GetObject(, "Excel.Application") ' Tentamos capturar o objeto.

        If oApp Is Nothing Then ' Se o objeto ainda não existir...
            Set oApp = CreateObject("Excel.Application") ' ... mandamos criá-lo.
        End If

    O sistema irá gerar o erro 429 se tentar obter um objeto que ainda não foi criado. Assim sendo, teremos que tratar os erros. Como deves saber, quando mandamos emitir uma mensagem de erro, os erros de número 0 e 20 serão emitidos mesmo se não tiver erros. Então, esses dois números entrarão na condição:

    Código:
        On Error GoTo Terro

        Dim rs As Recordset, N As Integer, oApp As Object, uCell As Double

        Set oApp = GetObject(, "Excel.Application")

        If oApp Is Nothing Then
            Set oApp = CreateObject("Excel.Application")
        End If

    ...
    ...
    ...

    TErro:
        If Err.Number = 0 Or Err.Number = 20 Or Err.Number = 429 Then
            Resume Next
        Else
            MsgBox Err.Number & " - " & Err.Description
        End If

    Acredito que isso sanará o problema.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Convidado
    Convidado


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Convidado 30/1/2014, 15:31

    Vou testar aqui..

    Caso queira tentar por ai eis  o Bd

    https://dl.dropboxusercontent.com/u/26441349/ImportaExcell.rar

    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Convidado 30/1/2014, 15:40

    Erro 462... A maquina ou o servidor bla bla

    Ta difícil...

    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Convidado 30/1/2014, 15:56

    Segundo o que entendi no artigo da Microsoft o erro está em que o vba está criando uma própria referencia sendo que na linha em questão ela não está especificada...

    Veja o que fala o artigo:
    Para automatizar o Microsoft Excel, você estabelece uma variável de objeto que geralmente refere-se ao objeto aplicativo ou o objeto de pasta de trabalho do Excel. Outras variáveis de objeto podem ser definidas para fazerem referência a uma planilha, ou outros objetos no modelo de objeto do Microsoft Excel. Ao escrever um código para usar um objeto, método ou propriedade do Excel você sempre deve preceder a chamada com a variável de objeto apropriado. Se você não o fizer o Visual Basic estabelece sua própria referência para o Excel. Essa referência pode causar problemas quando você tentar executar o código de automação diversas vezes. Observe que mesmo se o código de linha começar com a variável de objeto, uma chamada pode ser feita para um objeto, método ou propriedade do Excel, no meio da linha de código que não está precedida com uma variável de objeto.

    Se você não o fizer o Visual Basic estabelece sua própria referência para o Excel. Essa referência pode causar problemas quando você tentar executar o código de automação diversas vezes.


    Veja o que se substitui neste exemplo para que isto não ocorra: 
    Linha Original
    Código:
    xlSheet.Range(Cells(1,1),Cells(10,2)).Value = "Hello"
                   
    Altere a linha de código para assemelhar-se à seguinte linha de código.
    Código:
    xlSheet.Range(xlSheet.Cells(1,1),xlSheet.Cells(10,2)).Value = "Hello"      
    avatar
    Convidado
    Convidado


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Convidado 30/1/2014, 15:58

    Como o erro acontece na linha a seguir.. penso que na mesma falta referenciar algo e ai o VBA cria esta referencia.. Como ela é criada e não finalizada ao final do código, gera erro na próxima execução:

    uCell = oAppExcel.Worksheets("Sheet0").Range("A" & Rows.Count).End(xlUp).Row ' uCell será o número da última célula não nula da coluna A
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  criquio 30/1/2014, 16:05

    Você tentou implementar conforme falei na mensagem n° 28? Eu fiz em um exemplo aqui e funcionou redondinho Very Happy


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Convidado
    Convidado


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Convidado 30/1/2014, 16:34

    O problema está na variável Rows..

     uCell = oAppExcel.Worksheets("Sheet0").Range("A" & Rows.Count).End(xlUp).Row '

    Ao iniciar a primeira vez ela não está definida..
    Após o Ucell ela mantem a contagem de linhas..
    Na proxima execucão a variável dá mensagem de servidor blblblb

    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Convidado 30/1/2014, 16:36

    Referente mensagem 28... Está conforme:


    Private Sub btnImpExtrato_Click()
          '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    10    On Error GoTo TrataErro
          Dim NomeProcedimento As String
    20        NomeProcedimento = "btnImpExtrato_Click"
              'Adiciona o nome do procedimento à função
    30        PegaProcedimento (NomeProcedimento)
          '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          Dim MSG         As String
          Dim StrDestino As String, StrOrigem As String
          '-----------------------------------------------------------------------------------
          'Se não fora selecionado um banco na caixa de combinação emite aviso e encerra a sub
          '-----------------------------------------------------------------------------------
    40    If Len("" & Me.cboBanco) = 0 Then
    50        MsgBox "É necessário selecionar um banco!", vbCritical, "ATENÇÃO"
    60        Me.cboBanco.SetFocus
    70        Me.cboBanco.Dropdown
    80        Exit Sub
    90    End If
          '--------------------------------------------------
          'Mensagem de confirmação para importação do extrato
          '--------------------------------------------------
    100   MSG = MsgBox("Deseja importar o extrato do Excel?", vbYesNo + vbQuestion, "IMPORTAR EXTRATO")
    110       Select Case MSG
                  Case vbYes
                      '---------------------------------------------
                      'Ativa a mensagem de aviso sobre  a importação
                      '---------------------------------------------
    120               Me.lbAviso.Visible = True
    130               Me.lbAviso.Caption = "Aguarde, importando extrato...."
                      '-------------------------------------
                      'Aplica a ampulheta no cursor do mouse
                      '-------------------------------------
    140               Screen.MousePointer = 11
                      '-------------------------------------------------
                      'Abre a caixa de diálogo para selecionar o arquivo
                      '-------------------------------------------------
                      Dim Caminho As String, StrArquivo As String
                      Dim Titulo As String, filtro As String, NovoCaminho As String
                     
    150               filtro = "Arquivos do Excell (*.xls)" & Chr(0) & "*.xls" & Chr(0)
    160               Titulo = "Selecione o Extrato..."
    170               Caminho = "C:\"
    180               Caminho = LocalizarArquivo(Caminho, Titulo, filtro)
    190               StrArquivo = Mid(Caminho, InStrRev(Caminho, "\") + 1)
    200               Me.txtCaminho = Caminho
    210               Me.txtArquivo = StrArquivo
                      '--------------------------------------
                      'Verifica se o extrato já foi importado
                      '--------------------------------------
    220               If DCount("*", "tblMarcaDiaExtrato", "cpNomeArquivo = '" & Me.txtArquivo & "'") > 0 Then
    230                    MsgBox "Este Extrato já foi importado!", vbCritical, "EXTRATO EXISTENTE"
                           '-------------------------------------
                           'Remove a ampulheta no cursor do mouse
                           '-------------------------------------
    240                    Screen.MousePointer = 0
    250                    Exit Sub
    260               End If
                      '------------------------------------------------
                      'Variáveis para a importação do arquivo em excell
                      '------------------------------------------------
                      Dim N As Integer, oAppExcel As Object, Lista As String, uCell As Double, wbook As Object
                      '---------------------------------------------------------
                     'Variáveis que receberão a informação das células do Excell
                      '---------------------------------------------------------
                      Dim ID_Banco As Byte, dblCredito As Double, dblDebito As Double, StrHistorico As String, StrDoc As String
                      Dim nCount As Integer, dtData
                      '-----------------------
                      'Seto o objeto do Excell
                      '-----------------------
                      'Set oAppExcel = CreateObject("Excel.Application")
    270               Set oAppExcel = GetObject(, "Excel.Application") ' Tentamos capturar o objeto.

    280             If oAppExcel Is Nothing Then ' Se o objeto ainda não existir...
    290                  Set oAppExcel = CreateObject("Excel.Application") ' ... mandamos criá-lo.
    300             End If
    310               oAppExcel.Workbooks.Open Caminho, , True
    320               Set wbook = oAppExcel.Workbooks(StrArquivo)
    330               oAppExcel.Workbooks.Open Me.txtCaminho
    340               oAppExcel.Visible = False
    350               oAppExcel.Worksheets("Sheet0").Activate
    360               uCell = oAppExcel.Worksheets("Sheet0").Range("A" & Rows.Count).End(xlUp).Row ' uCell será o número da última célula não nula da coluna A

    370               For N = 11 To uCell
                     ' MsgBox oAppExcel.ActiveSheet.Range("A" & N) & "- " & oAppExcel.ActiveSheet.Range("B" & N)
                          '-------------------------------------------------
                          'Verifico se a célula contém um campo do tipo Data
                          '-------------------------------------------------
    380                   If IsDate(oAppExcel.ActiveSheet.Range("A" & N)) Then
                              '------------------------------------------------------------------
                              'Verifica o comprimento dos ranges Credito e Debito para em sendo 0
                              'remeterá para o rótulo continua
                              '------------------------------------------------------------------
    390                       If Len("" & oAppExcel.ActiveSheet.Range("C" & N)) = 0 And Len("" & oAppExcel.ActiveSheet.Range("D" & N)) = 0 Then
    400                           GoTo Pula
    410                       End If
                              '---------------------------------------------------------------------------
                              'Verifico o comprimento do Range Credito na planilha, em sendo 0 é um débito
                              '---------------------------------------------------------------------------
    420                       If Len("" & oAppExcel.ActiveSheet.Range("D" & N)) > 0 Then
                                  '----------------------------------------------------------------------
                                  'Aplica nas variáveis os respectivos valores condizentes com as células
                                  '----------------------------------------------------------------------
    430                           ID_Banco = Me.cboBanco.Column(0)
    440                           dtData = oAppExcel.ActiveSheet.Range("A" & N)
    450                           StrHistorico = oAppExcel.ActiveSheet.Range("B" & N)
    460                           StrDoc = oAppExcel.ActiveSheet.Range("C" & N)
    470                           dblCredito = oAppExcel.ActiveSheet.Range("D" & N)
    480                           dblDebito = 0
                                  '---------------------------
                                  'Insere os valores na tabela
                                  '---------------------------
    490                           CurrentDb.Execute "INSERT INTO tblMovimento_Banco (idCaixa, Historico, DataMovimento, ValorCredito, ValorDebito, NumDoc, TipoDoc, cpTipoID)" _
                                                  & "Values (""" & ID_Banco & """, """ & StrHistorico & """, """ & dtData & """, """ & dblCredito & """," _
                                                  & """" & dblDebito & """, """ & StrDoc & """,'1', '1')"
    500                       Else
                                  '----------------------------------------------------------------------
                                  'Aplica nas variáveis os respectivos valores condizentes com as células
                                  '----------------------------------------------------------------------
    510                           ID_Banco = Me.cboBanco.Column(0)
    520                           dtData = oAppExcel.ActiveSheet.Range("A" & N)
    530                           StrHistorico = oAppExcel.ActiveSheet.Range("B" & N)
    540                           StrDoc = oAppExcel.ActiveSheet.Range("C" & N)
    550                           dblCredito = 0
    560                           dblDebito = Mid(oAppExcel.ActiveSheet.Range("E" & N), 2, Len(oAppExcel.ActiveSheet.Range("E" & N)))
                                  '---------------------------
                                  'Insere os valores na tabela
                                  '---------------------------
    570                           CurrentDb.Execute "INSERT INTO tblMovimento_Banco (idCaixa, Historico, DataMovimento, ValorCredito, ValorDebito, NumDoc, TipoDoc, cpTipoID)" _
                                                  & "Values (""" & ID_Banco & """, """ & StrHistorico & """,""" & dtData & """, """ & dblCredito & """," _
                                                  & """" & dblDebito & """, """ & StrDoc & """,'2', '1')"
    580                       End If
    590                   End If
                          '----------------------------------------------------------
                          'Incrementa o contador para verificar a última linha válida
                          '----------------------------------------------------------
    600                   nCount = nCount + 1
          '-----------------------------------------------------------------------------------
          'Rótulo par aonde é direcionado o código caso os ranges Credito e Debito sejam nulos
          '-----------------------------------------------------------------------------------
    Pula:
    610               Next
                      '---------------------------------------------------------
                      'Adiciona na tabela o registro da última importação valida
                      '---------------------------------------------------------
    620               CurrentDb.Execute "INSERT INTO tblMarcaDiaExtrato (Banco_ID, cpDataUltimaImportacao, cpDescricao, cpNumDoc, cpNomeArquivo) Values " _
                                      & " (""" & ID_Banco & """, #" & dtData & "#, """ & StrHistorico & """,""" & StrDoc & """, """ & Me.txtArquivo & """)"
                      '-------------------------------------
                      'Remove a ampulheta no cursor do mouse
                      '-------------------------------------
    630               Screen.MousePointer = 0
                      '---------------------
                      'Mensagem de conclusão
                      '---------------------
    640               MsgBox "Extrato importado com Sucesso!", vbInformation, "PRONTO"
                      '-----------------------------------------------
                      'Destiva a mensagem de aviso sobre  a importação
                      '-----------------------------------------------
    650               Me.lbAviso.Visible = False
                      oAppExcel.Workbooks.Save Me.txtCaminho
                      '--------------------------------------------
                      'Termina a aplicação Excell e limpa ao objeto
                      '--------------------------------------------
    660               oAppExcel.DisplayAlerts = False
    680               Set oAppExcel = Nothing
    690               Set wbook = Nothing
                      Rows = ""
    '670               oAppExcel.Application.Quit
    700               Call MatarProcesso("Excel.exe")
                      uCell = Empty
    710               'DoCmd.Close acForm, "frmMovimentacaoBanco"
    720              ' DoCmd.OpenForm "frmMovimentoBanco"

                      '---------------------------------------------------------------------------
                      'Carrego nas variáveis o caminho de origem do arquivo e o caminho do destino
                      '---------------------------------------------------------------------------
    730               StrOrigem = Caminho
    740               StrDestino = CurrentProject.Path & "\Extratos\" & txtArquivo
                      '----------------------------------------
                      'Copio o arquivo da origem para o destino
                      '----------------------------------------
                      'FileCopy StrOrigem, StrDestino
                      '-------------------------
                      'Apago o arquivo na origem
                      '-------------------------
                      'Kill StrOrigem
    750           Case vbNo
    760       End Select
          '---------------------------------------------------------
          'Atualiza o formulário para exibir os registros importados
          '---------------------------------------------------------
    770   Me.AtualizaForm
    780   Exit Sub
          '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          'Tratamento de Erros
          '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Exit_TrataErro:
    790       DoCmd.Hourglass False
    800       DoCmd.Echo True
    810   Exit Sub
    TrataErro:
    820       Select Case err.Number
                  Case 0, 20, 429
    830             Resume Next
    840           Case Else
    850             DoCmd.Hourglass False
    860             DoCmd.Echo True
                   'Chama a função global de tratamento de erros
    870            GlobalErrHandler (Me.Name)
    880            Resume Exit_TrataErro
    890       End Select
    End Sub


    Cumprimentos.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  criquio 30/1/2014, 16:38

    Então resolvemos?


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Convidado
    Convidado


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Convidado 30/1/2014, 16:44

    Infelizmente não...


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Captura%20de%20tela%202014-01-30%2013.40.42
    https://www.dropbox.com/s/7cahbr1mv4wh608/Captura%20de%20tela%202014-01-30%2013.40.42.png



    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Captura%20de%20tela%202014-01-30%2013.40.42[Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Captura%20de%20tela%202014-01-30%2013.40.42
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  criquio 30/1/2014, 16:50

    Veja se esse exemplo funciona. Caso o arquivo que você tem aí esteja aberto, feche antes porque não pode abrir dois arquivos com mesmo nome mesmo estando em pastas separadas.
    Anexos
    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell AttachmentImportExcel.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (43 Kb) Baixado 69 vez(es)


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Convidado
    Convidado


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Convidado 30/1/2014, 17:13

    No teu Banco deu certo.. Copiei teus objetos no meu BD e não rodou...

    Cumprimentos.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  criquio 30/1/2014, 17:16

    Uma perguntinha básica: você marcou a referência ao Microsoft Excel?


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Convidado
    Convidado


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Convidado 30/1/2014, 17:26

    Sim.. Mas no meu código faltou uma linha que está no teu.. vou aplicar e retorno.

        oApp.ActiveWorkbook.Close
        oApp.Quit
        Set oApp = Nothing

    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Convidado 30/1/2014, 18:56

    Olha que interessnte.. Consegui simular o mesmo problema no teu BD..

    1 - Abre o banco de dados
    2 -Abre o formulário
    3 - Clica no botão.. Os dados serão importatos e cria-se uma instância do Excell no Task Manager.. Mesmo ao final do código o Processo não é encerrado no Gerenciador de tarefas. Desta maneira pode-se clicar no botão n's vezes..
    No entanto se encerrar o processo pelo gerenciador de tarefas.. Produzirá o erro 462


    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Convidado 30/1/2014, 19:02

    Resolução:

    1 - Depois que referencia o Aplicativo Excell no Access ele fica como servidor do mesmo, permanecendo ativo no gerenciador de tarefas
    2 - O processo não pode ser encerrado no Gerenciador de tarefas.. Caso seja encerrado produzirá o erro e apenas fechando o banco de dados ele volta ao normal.


    >>> A instância do Excel aberta como servidor do Access é encerrada automaticamente quando fecha o Banco de Dados.


    Foi um bom aprendizado...

    Obrigado Mestre!
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  criquio 30/1/2014, 19:10

    E se incluir o número desse erro lá no TErro para dar um Resume Next? Tentou para ver isso? Seria interessante saber se assim passa.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Convidado
    Convidado


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Convidado 30/1/2014, 19:43

    Passa Mestre no entanto não se pode utilizar UCell para referenciar no For.. Pois UCell = 0

    O erro Condiz apenas com a utilização da linha para extrair o número máximo de Registros no Excel


    Aqui no caso gerou o erro.. Apliquei o tratamento.. porém na cláusula for UCell = 0 e não insere registros..
    Coloquei 10 to 20 para testar... e apesar do erro 462 prossegiu o código e inseriu 10 registros na tabela

    O Erro 462 é condizente com a propriedade Rows.


        uCell = oApp.Worksheets("Sheet0").Range("A" & Rows.Count).End(xlUp).Row

        For N = 10 To 20
            If IsDate(oApp.ActiveSheet.Range("A" & N)) Then
                Me.lblProgresso.Caption = "Registro atual: " & "A" & N
                Lista = Lista & "A" & N & " - " & oApp.ActiveSheet.Range("A" & N) & vbCrLf
            End If
        Next

    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Convidado 30/1/2014, 19:48

    Coloquei 10 to 1000, para testar..

    Adicinou os 177 registros porem o for correu ate 1.000.. Ai poderia colocar uma condição para verificar nulos.. e encerrar o for..

    O que acha?

    Cumprimentos.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  criquio 30/1/2014, 19:53

    Melhor do jeito que está mesmo. Pode acontecer de ter célula vazia no meio do processo e aí as células subsequentes não serão importadas.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Convidado
    Convidado


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Convidado 30/1/2014, 20:59

    Fechou!

    Abraços.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  criquio 30/1/2014, 21:05

    Ótimo, HEHEHE.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.


    Conteúdo patrocinado


    [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell Empty Re: [Resolvido]Importar campos específicos para uma tabela Access de um Ficheiro Excell

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/3/2024, 19:58