MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro)

    annissima
    annissima
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 146
    Registrado : 24/10/2017

    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Empty [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro)

    Mensagem  annissima em 16/11/2020, 00:41

    Help!


    Tenho um pedaço de código que lê um texto, e procura datas, assim:


    Código:

    Dim strArray() As String
    Dim strParteInteira As Integer
    Dim i As Integer

    For i = 1 To strParteInteira '==== Vai pegar cada palavra e montar novamente, porém uma abaixo da outra
    If IsDate(Format(Trim(strArray(i - 1)), "dd/mm/yyyy")) Then
    If Trim(strArray(i - 1)) Like "##:##" Then VarHora = Trim(strArray(i - 1))
    If Trim(strArray(i - 1)) Like "##/##/####" Then varData = Trim(strArray(i - 1))
    End If
    Next

    Funciona lindo.

    Mas se eu tiver um texto com barras, ele da erro:
    (ele lê a caixinha cinza)
    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Movimento

    O erro é nº 6, "estouro" (erro em tempo de execução)

    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Captura-de-tela-2020-11-15-213844

    Alguém sabe como corrigir isso, para que ele leia apenas data, ou se não for possível, colocar um ON ERROR GO NEXT?


    O cód completo é esse:


    Código:
    Private Sub btSaveReg_Click()

    Dim Resultado As VbMsgBoxResult

              Resultado = MsgBox(txt_dr & ", deseja salvar esse registro?", vbYesNo, "Salvar Movimento Push [inceptionApp]")
              If Resultado = vbYes Then
       
                    movimento = Replace(movimento, vbTab, "", , , vbTextCompare)
                    movimento = Replace(movimento, vbLf, "", , , vbTextCompare)
                    movimento = Replace(movimento, vbCrLf, "", , , vbTextCompare)
                    movimento = Replace(movimento, vbCr, "", , , vbTextCompare)
                    movimento = Replace(movimento, vbNullString, "", , , vbTextCompare)
                    movimento = Replace(movimento, vbNewLine, "", , , vbTextCompare)
                    movimento = Replace(movimento, "  ", "", , , vbTextCompare)
                   
                    Me.movimento.SetFocus
                   
                   

               
                                                Dim varData As Date
                                                Dim VarHora As Date
                                                Dim strBox As String
                                                Dim strFrase As String
                                               
                                               
                                                Dim txtData As String
                                                Dim txtHora As String
                                               
                                                strBox = Forms!xMovPushAnalise![movimento]
                                               
                                                '=====================
                                               
                                                Dim strArray() As String
                                                Dim strParteInteira As Integer
                                                Dim i As Integer
                                               
                                                'On Error GoTo Fim
                                               
                                                    strBox = Replace(strBox, ".", "") '==== Tira pontos pois se eles estiverem junto com a data ou com as horas, não será detectado
                                                    strBox = Replace(strBox, ",", "") '==== Tira pontos pois se eles estiverem junto com a data ou com as horas, não será detectado
                                                    '==== Se houver outros sinais que atrapalhem, acrescente
                                                    strArray = Split(strBox, " ") '==== Separa as palavras e coloca em uma Matriz
                                                   
                                                    strParteInteira = UBound(strArray) + 1 '==== Determina quantas palavras tem a frase
                                                   
                                                    If strParteInteira = 0 Then '==== Se não há palavra alguma, devolve a string da mesma forma como veio
                                                        strBox = strFrase
                                                        Exit Sub
                                                    End If
                                                   
                                                    For i = 1 To strParteInteira '==== Vai pegar cada palavra e montar novamente, porém uma abaixo da outra
                                                        If IsDate(Format(Trim(strArray(i - 1)), "dd/mm/yyyy")) Then
                                                            If Trim(strArray(i - 1)) Like "##:##" Then VarHora = Trim(strArray(i - 1))
                                                            If Trim(strArray(i - 1)) Like "##/##/####" Then varData = Trim(strArray(i - 1))
                                                        End If
                                                    Next
                                               
                                                '=====================
                                                txtData = varData
                                                txtHora = VarHora
                                               
                                               
                                                Dim ResultadoMov As VbMsgBoxResult
                                               
                                                'analisa audiencia
                                                    If (Forms!xMovPushAnalise![movimento].Text Like "*" & "Audiência" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "Audiencia" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "Conciliação" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "Conciliaçao" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "Conciliacao" & "*") Or _
                                                        (Forms!xMovPushAnalise![movimento].Text Like "*" & "AUDIÊNCIA" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "AUDIENCIA" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "CONCILIAÇÃO" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "CONCILIAÇAO" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "CONCILIACAO" & "*") Or _
                                                        (Forms!xMovPushAnalise![movimento].Text Like "*" & "audiência" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "audiencia" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "conciliação" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "conciliaçao" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "conciliacao" & "*") Then
                                               
                                                     
                                                            ResultadoMov = MsgBox(txt_dr & ", eu li algo sobre uma audiência em " & txtData & " às " & txtHora & "... deseja cadastrar um compromisso de audiência na agenda?", vbYesNo, "Cadastrar Novo Compromisso")
                                                           
                                                            If ResultadoMov = vbYes Then
                                                           
                                                                DoCmd.OpenForm "xAgenda", acNormal
                                                                DoCmd.GoToRecord , , acNewRec
                                                                Forms!xAgenda![Combinação51].Value = Forms!processosfull![Combinação17].Value
                                                                Forms!xAgenda![Combinação53].Value = Forms!processosfull![NumProc].Value
                                                                Forms!xAgenda![Combinação49].Value = "AUDIÊNCIA"
                                                                Forms!xAgenda![DataDia].Value = txtData
                                                                Forms!xAgenda![DataHora].Value = txtHora
                                                                Forms!xAgenda![txtSubject].Value = Forms!xAgenda![Combinação49].Value & " | " & Forms!processosfull![NumProc].Value
                                                                Forms!xAgenda![txt_det].Value = Forms!xAgenda![Combinação49].Value & " | " & Forms!processosfull![NumProc].Value & "  |  Link Esaj: " & Forms!xAgenda![txtLinkEsaj].Value & " | Link Pasta Nuvem do Cliente: " & Forms!xAgenda![txtPastaNuvem].Value
                                                               
                                                            End If
                                                                 
                                                    End If
                                                   
                                                   
                                             
                                                                                                   
                                                'analisa publicação
                                                If (Forms!xMovPushAnalise![movimento].Text Like "*" & "REMETIDO AO DJE" & "*") Then
                                                  ResultadoMov = MsgBox(txt_dr & ", eu vi que esse movimento é uma publicação... deseja cadastrar um compromisso de PRAZO na agenda?", vbYesNo, "Cadastrar Novo Compromisso")
                                                  Me.cmbTipoMov = "publicação"
                                                 
                                                            If ResultadoMov = vbYes Then
                                                           
                                                                DoCmd.OpenForm "xAgenda", acNormal
                                                                DoCmd.GoToRecord , , acNewRec
                                                                Forms!xAgenda![Combinação51].Value = Forms!xMovPushAnalise![Combinação17].Value
                                                                Forms!xAgenda![Combinação53].Value = Forms!xMovPushAnalise![NumProc].Value
                                                                Forms!xAgenda![Combinação49].Value = "PRAZO"
                                                                Forms!xAgenda![DataDia].Value = Forms!xMovPushAnalise![DataCadProc].Value
                                                                'Forms!xAgenda![DataHora].Value = "10:00"
                                                                Forms!xAgenda![txtSubject].Value = Forms!xAgenda![Combinação49].Value & " | " & Forms!xMovPushAnalise![NumProc].Value
                                                                Forms!xAgenda![txt_det].Value = Forms!xAgenda![Combinação49].Value & " | " & Forms!xMovPushAnalise![NumProc].Value & "  |  Link Esaj: " & Forms!xAgenda![txtLinkEsaj].Value & " | Link Pasta Nuvem do Cliente: " & Forms!xAgenda![txtPastaNuvem].Value
                                                               
                                                               
                                                                Dim strPrazo As String
                                                                strPrazo = InputBox(txt_dr & ", digite a seguir quantos dias de prazo quer calcular a partir da data da publicação:", "Cálculo de Prazo [inceptionApp]", "5")
                                                                Forms!xAgenda![dias_prazo].Value = strPrazo
                                                               
                                                               
                                                                Call Forms("xAgenda").DataDia_AfterUpdate
                                                                   
                                                                   
                                                                Dim resultadoPrazo As VbMsgBoxResult
                                                                resultadoPrazo = MsgBox(txt_dr & ", eu calculei que " & strPrazo & " dias úteis a contar da publicação no dia " & CStr(Forms!xAgenda![DataDia]) & " será dia " & CStr(Forms!xAgenda![data_fin]) & ". Deseja usar " & CStr(Forms!xAgenda![data_fin]) & " como data final do prazo?", vbYesNo, "Cadastrar Novo Compromisso")
                                                                If resultadoPrazo = vbYes Then
                                                                Forms!xAgenda![DataDia].Value = Forms!xAgenda![data_fin].Value
                                                                End If
                                                               
                                                            End If
                                                                 
                                                End If
       
                                Me.cmbTipoMov.Value = "andamento"
                                DoCmd.Close acForm, "xmovpushanalise", acSaveYes
                                DoCmd.OpenForm "xmovpushanalise", acNormal
                               
              Else
              MsgBox "Clique  no ícone X para Excluir o Registro se não desejar salvar!"
             
              End If
       

             
    End Sub
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2455
    Registrado : 22/11/2016

    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Empty Re: [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro)

    Mensagem  DamascenoJr. em 16/11/2020, 01:27

    Se a ideia for capturar uma data no meio de todo o texto, sugiro o uso de expressões regulares.
    usandoaccess.com.br/tutoriais/expressoes-regulares-microsoft-access.asp?id=1


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3686
    Registrado : 04/04/2010

    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Empty Re: [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro)

    Mensagem  Avelino Sampaio em 16/11/2020, 10:53

    Olá!

    sou suspeito aqui mas sem dúvida o uso de Expressões Regulares neste seu caso cairia muito bem.

    Estouro 6 significa que vc ultrapassou o limite numérico de alguma variável.   Por exemplo, o limite de uma variável do tipo byte é 255 e o limite de uma variável Integer é de 32.768.  Para teste, passe as variáveis para do tipo Long :

    Dim strParteInteira As Integer
    Dim i As Integer


    Para:

    Dim strParteInteira As Long
    Dim i As Long


    Se ainda assim não resultar, acrescente a caixa de mensagem no ponto indicado abaixo e nos diga o valor apresentado.

    ...
    For i = 1 To strParteInteira '==== Vai pegar cada palavra e montar novamente, porém uma abaixo da outra
    msgbox Trim(strArray(i - 1))
       If IsDate(Format(Trim(strArray(i - 1)), "dd/mm/yyyy")) Then
             If Trim(strArray(i - 1)) Like "##:##" Then VarHora = Trim(strArray(i - 1))
             If Trim(strArray(i - 1)) Like "##/##/####" Then varData = Trim(strArray(i - 1))
       End If
    Next
    ...


    Aguardamos


    Última edição por Avelino Sampaio em 16/11/2020, 14:40, editado 1 vez(es)


    .................................................................................
    Quer aprender a montar ribbons ?  
    Clique AQUI e conheça o meu aplicativo.
    annissima
    annissima
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 146
    Registrado : 24/10/2017

    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Empty Re: [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro)

    Mensagem  annissima em 16/11/2020, 12:09

    Oi,

    Coloquei as variáveis como Long, mas aí ele dá erro de estouro no seguinte trecho:

    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Captura-de-tela-2020-11-16-090444

    Coloquei o MsgBox, e ele me deu um monte de msgbox (um pra cada palavra do texto)
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3686
    Registrado : 04/04/2010

    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Empty Re: [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro)

    Mensagem  Avelino Sampaio em 16/11/2020, 13:02

    Olá!

    Coloca então um ponto de interrupção no FOR.  Tira a caixa de mensagem

    Ao rodar o procedimento, a execução será interrompida no FOR.  Vai dando F5 para liberar o código.  Quando o erro surgir, abra a "janela Imediata" (CTRL + G) e nela analise os valores.  Exemplo:

    ? i [enter]
    ? Trim(strArray(i - 1)) [enter]
    ? Format(Trim(strArray(i - 1)), "dd/mm/yyyy") [enter]
    ? IsDate(Format(Trim(strArray(i - 1)), "dd/mm/yyyy")) [enter]


    Aguardamos os valores que vc leu na janela Imediata.


    .................................................................................
    Quer aprender a montar ribbons ?  
    Clique AQUI e conheça o meu aplicativo.
    annissima
    annissima
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 146
    Registrado : 24/10/2017

    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Empty Re: [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro)

    Mensagem  annissima em 16/11/2020, 13:22

    Erro igual à msg anterior, janela de variáveis aqui:


    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Captura-de-tela-2020-11-16-100946
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3686
    Registrado : 04/04/2010

    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Empty Re: [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro)

    Mensagem  Avelino Sampaio em 16/11/2020, 13:29

    Olá!

    Passe a variável strArray() para Variant

    Dim strArray() As Variant

    Mas antes gostaria que a senhora seguisse a sequencia de teste que lhe pedi na Janela Imediata. A ideia aqui é saber em que sequencia irá acusar o estouro:

    ? i [enter]
    ? Trim(strArray(i - 1)) [enter]
    ? Format(Trim(strArray(i - 1)), "dd/mm/yyyy") [enter]
    ? IsDate(Format(Trim(strArray(i - 1)), "dd/mm/yyyy")) [enter]

    No aguardo



    .................................................................................
    Quer aprender a montar ribbons ?  
    Clique AQUI e conheça o meu aplicativo.
    annissima
    annissima
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 146
    Registrado : 24/10/2017

    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Empty Re: [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro)

    Mensagem  annissima em 16/11/2020, 13:36

    O erro dá assim, com e sem a array como Variant


    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Captura-de-tela-2020-11-16-103355

    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Captura-de-tela-2020-11-16-103350

    Nem cheguei a apertar F5, ele ja deu isso
    annissima
    annissima
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 146
    Registrado : 24/10/2017

    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Empty Re: [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro)

    Mensagem  annissima em 16/11/2020, 13:40

    Voltei a Array pra String.

    No F5:

    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Captura-de-tela-2020-11-16-103900
    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Captura-de-tela-2020-11-16-103849
    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Captura-de-tela-2020-11-16-103824
    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Captura-de-tela-2020-11-16-103756
    annissima
    annissima
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 146
    Registrado : 24/10/2017

    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Empty Re: [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro)

    Mensagem  annissima em 16/11/2020, 13:42

    i (417) = 17.08.2020

    é uma data com pontos.

    Como eu arrumo isso?
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3686
    Registrado : 04/04/2010

    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Empty Re: [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro)

    Mensagem  Avelino Sampaio em 16/11/2020, 14:02

    Opa!

    então já identificamos o erro do estouro 6 , que está com o format(). Fiz um teste aqui na janela imediata assim:

    ? format(trim("17.08.2020"),"dd/mm/yyyy")

    E o erro 6 ocorreu.

    Basta então analisar se a string possui 2 pontos e usar a função replace() para substituir por "/". Isso antes do iF acontecer.

    Vc pode voltar com as variáveis para INTEGER ao invés do LONG

    Aguardamos




    .................................................................................
    Quer aprender a montar ribbons ?  
    Clique AQUI e conheça o meu aplicativo.
    annissima
    annissima
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 146
    Registrado : 24/10/2017

    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Empty Re: [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro)

    Mensagem  annissima em 16/11/2020, 14:09

    Como eu faço isso?

    Coloquei antes de fazer a array:
    Código:
    movimento = Replace(movimento Like "##.##.####", ".", "/", , , vbTextCompare)


    ele trocou meu textão por FALSO

    Rolling Eyes


    Em tempo, vou deixar as Variáveis como long, tem vezes que tenho textos imensos!
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3686
    Registrado : 04/04/2010

    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Empty Re: [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro)

    Mensagem  Avelino Sampaio em 16/11/2020, 14:13

    Olá!

    Acho que pode rolar assim:

    dim dta
    ...
    For i = 1 To strParteInteira '==== Vai pegar cada palavra e montar novamente, porém uma abaixo da outra
    dta = replace(Trim(strArray(i - 1),".","/")
    If IsDate(Format(dta, "dd/mm/yyyy")) Then
    If Trim(dta) Like "##:##" Then VarHora = dta
    If Trim(dta) Like "##/##/####" Then varData = dta
    End If
    Next
    ...


    Aguardamos


    .................................................................................
    Quer aprender a montar ribbons ?  
    Clique AQUI e conheça o meu aplicativo.
    annissima
    annissima
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 146
    Registrado : 24/10/2017

    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Empty Re: [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro)

    Mensagem  annissima em 16/11/2020, 14:19

    Avelino, tem que ser antes de tudo.

    Lá em cima no meu código eu substituo os pontos, porque senao dá erro pra ler a data

    Código:
                                                Dim strArray() As String
                                               
                                                Dim strParteInteira As Long
                                                Dim i As Long
                                               
                                                'On Error GoTo Fim
                                               
                                                    strBox = Replace(strBox, ".", "") '==== Tira pontos pois se eles estiverem junto com a data ou com as horas, não será detectado
                                                    strBox = Replace(strBox, ",", "") '==== Tira pontos pois se eles estiverem junto com a data ou com as horas, não será detectado


    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3686
    Registrado : 04/04/2010

    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Empty Re: [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro)

    Mensagem  Avelino Sampaio em 16/11/2020, 14:33

    Bom,

    monte um pequeno texto, com as principais nuances de um texto original e cole aqui.  Vou pegar esse pequeno texto como exemplo e testar com o seu código.  Retorno com um BD exemplo.

    Aguardamos


    .................................................................................
    Quer aprender a montar ribbons ?  
    Clique AQUI e conheça o meu aplicativo.
    annissima
    annissima
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 146
    Registrado : 24/10/2017

    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Empty Re: [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro)

    Mensagem  annissima em 16/11/2020, 14:45

    Esses textos são extraídos de processos. Posso colher uma infinidade deles, mas a maioria é apenas nesse sentido.
    Essa é a primeira vez que tenho problema com uma data, porque colocaram com pontos (.) ao invés de barras (/).




    Texto 1:

    Decisão // "Vistos. 1- Fls. 463/468, 481/483 e 502/503: Trata-se de pedido liberdade provisória formulado pela defesa do réu Leandro Ventura Firmino, diante do cumprimento do mandado de prisão expedido nos autos, haja vista o descumprimento pelo réu da medida cautelar de deixar o Juízo informado sobre sua alteração de endereço, uma vez que ao ser tentada sua intimação no endereço informado nos autos, não foi localizado. Alega que ficou a cargo do advogado anteriormente constituído informar ao Juízo seu retorno à residência dos genitores e acompanhar o processo, juntando nos autos mensagens de whatsapp e os áudios das conversas com o defensor. A representante do Ministério Público opinou desfavoralmente ao pedido às fls. 476/478 e 508. Em que pese a manifestação ministerial, compulsando os autos verifica-se que, nos áudios acostados e no print das conversas anexadas, apesar de confusos, constata-se que o réu entrou em contato com o defensor constituído para obter informações do processo, diante da notícia da intimação dos demais réus, obtendo sempre respostas genéricas, evasivas do defensor, que estava esperando manifestação do Minsitério Público ou decisão do Juiz, o que indica que não estava informado do real andamento do feito. Além disto, embora tenha sido intimado a respeito das medidas cautelares, entre as quais o de comparecimento a todos os atos do processo, o que implica a obrigação de manter o endereço atualizado, perante o juízo, o certo é que não foi advertido especificamente a respeito desta obrigação. Desta forma, consideradas essas circunstâncias, concedo a liberdade provisória ao réu, com a condição de comparecer a todos os atos do processo e manter seu endereço informado nos autos, ficando mantidas as medidas cautelares aplicadas às fls. 182/183, ficando advertido de que o descumprimento das medidas cautelares ou a alteração de endereço sem comunicação ao juízo poderá levar a nova decretação da sua prisão. Expeça-se o alvará de soltura, com urgência. 2- Diante da constituição de novo defensor pelo réu, expeça-se a certidão de honorários ao advogado nomeado às fls. 370 no valor proporcional ao serviço prestado. 3- Fls. 513: Ciente que o réu Leandro não possui passaporte. 4- Cobre-se a resposta ao ofício expedido às fls. 409. 5- Aguarde-se o retorno da carta precatória expedida às fls. 372 em relação à intimação do réu Johnny, uma vez que o réu Márcio já informou não possuir passaporte nos autos. 6- Outrossim, tendo em vista que apesar da retomada do expediente presencial desta Comarca, a princípio a partir do dia 17.08.2020, bem como as orientações contidas no Prov. 2564/20 quando do trabalho presencial, que recomenda que seja priorizada a realização de teleaudiências, havendo necessidade de remanejamento na pauta diante do horário e escala do trabalho presencial, bem como para análise dos feitos para verificar se as audiências serão realizadas presenciais ou não, a audiência designada às fls. 398/399 restou prejudicada. Libere-se a pauta. Oportunamente, voltem os autos conclusos para a designação de nova data para a audiência. Int. "

    Texto 2:

    Remetido ao DJE / Relação: 0737/2020 Teor do ato: Vistos. NICOLAS ajuizou ação revisional de alimentos em face de JOSÉ , aduzindo, em suma, que nos autos de divórcio do casal, n. 1000000-24.0016.8.26.0000, houve acordo entre os genitores do autor, com a fixação de alimentos do pai ao filho no valor de 20% do salário mínimo; alega o autor que o valor é extremamente baixo, em torno de R$ 190,80 (cento e noventa reais e oitenta centavos) pelo padrão de vida que o alimentante proporcionava ao alimentado; que o réu somente arca com as despesas de mensalidade escolar e convênio médico, o que somam-se cerca de R$ 3.000,00 (três mil reais) aproximadamente, contudo, o padrão de vida do menor caiu drasticamente; que o autor tem um custo aproximado mensal de R$ 8.000,00 (oito mil reais) a R$ 10.000,00 (dez mil reais), sendo possível a revisão dos alimentos para R$ 10.000,00 (dez mil reais) para que suas necessidades e padrão de vida sejam mantidos. Requereu liminarmente a revisão dos alimentos para o valor mensal de R$ 10.000,00 (Dez mil reais) o que corresponde a 10,5 salários mínimos e, ao final, a confirmação da liminar. Juntou documentos (fls.15/30). Não foi deferida a liminar (fls. 154). Audiência de conciliação infrutífera (fls. 74). Contestação a fls. 75/152, em que se argui preliminar de inépcia da inicial; que a genitora do autor não faz jus à gratuidade, auferindo R$ 16.000,00 com alugueres por mês; que o réu teve sua condição financeira piorada com o divórcio; que atualmente tem renda aproximada de doze mil reais por mês, oriunda de alugueres; que a guarda foi compartilhada, devendo cada genitor arcar com as despesas com o filho enquanto este estiver na companhia de cada um; não há prova de que a criança tem gastos mensais na monta pleiteada na inicial; que o réu, além de ajudar com convênio médico e escola, num total de R$ 3.000,00, também ajuda o filho com vestuário, dentista, almoço todos os dias na escola. Reconvenção a fls. 193-274, com vistas à modificação de guarda ao réu, e consequente exoneração de alimentos, bem como fixação de alimentos da mãe ao filho, no patamar de 20% de seus ganhos como autônoma. Contestação à reconvenção a fls. 290/302. Réplica a fls. 278/289. Não houve interesse na produção de provas. Razões finais das partes a fls. 337/345. Parecer do Ministério Público a fls. 349/353. Manifestação do autor a fls. 355/356. É o relatório. Decido. A preliminar de inépcia da inicial não colhe, porquanto a prova do alegado, pelo autor, não precisa ser esgotada com a inicial, havendo a fase instrutória, posteriormente, para tanto. Após esclarecimento do autor acerca da causa de pedir (fls. 355/356), passo a analisar o mérito. O pedido revisional é parcialmente procedente. Pretende o autor majorar o valor da pensão alimentícia mensal fixada em acordo de divórcio do casal, no valor de 20% do salário mínimo, para o valor de R$ 8.000,00 a R$ 10.000,00 mensais. Para que o pedido revisional de alimentos prospere, é fundamental a demonstração de que o autor necessita da majoração pleiteada, bem como que o réu reúne condições para arcar com o referido valor. No presente caso, partindo-se da premissa, incontroversa, de que as condições financeiras da família, antes do divórcio, eram elevadas, dado o significativo patrimônio imobiliário partilhado, depreende-se que, ainda assim, com a divisão do patrimônio, após a ruptura da sociedade conjugal, tanto a genitora quanto o genitor mantiveram bens consideráveis para, se não manter o mesmo padrão de vida, ao menos, continuar próximo do que ostentavam. Nesse quadro, e ainda, sendo presumíveis as necessidades da criança em referido contexto e em razão de sua idade, verifica-se que os alimentos outrora fixados em 20% do salário mínimo está abaixo de atender as exigências para o bom desenvolvimento do infante. Ademais, além de o réu confessar seus rendimentos, de pelo menos doze mil reais por mês, também o fato de admitir que realiza mensalmente os pagamentos da mensalidade escolar e do convênio médico do filho já autoriza a majoração dos alimentos, na medida em que demonstra que o alimentante possui uma capacidade contributiva muito maior do que a fixação dos alimentos em 20% do salário mínimo indica. Outrossim, embora a guarda tenha sido fixada de forma compartilhada entre as partes, restou consignado que os alimentos em favor do filho seriam pagos pelo genitor em pecúnia, além de ambos os pais terem assumido o compromisso em manter acomodações adequadas em suas respectivas residências, suprindo todas as necessidades da criança com alimento, vestuário, convênio médico, lazer e educação. Dessa forma, sendo dever dos pais dispensarem aos filhos os recursos necessários para sua criação, formação e educação, dentro de suas possibilidades, mantendo-se o padrão de vida e status social, e ainda, diante das evidências do bom padrão de vida do réu, de rigor a revisão dos alimentos, para majorá-los, contudo, em 4 salários mínimos vigentes, considerando-se, também, a evidência de que a genitora do menor também tem importante parcela de contribuição na mantença das despesas relatadas genericamente na inicial, podendo fazê-lo, se não em igualdade de condições com o réu, ao menos, com boa participação, diante do contexto patrimonial de cada um, como visto alhures. Relativamente à reconvenção, a via escolhida pelo reconvinte é inadequada para o pedido de modificação de guarda, exoneração de alimentos, e fixação de pensão alimentícia a ser paga exclusivamente pela genitora do menor, não só por abordar fatos que extrapolam os limites objetivos da lide principal, como também os limites subjetivos, considerando a diversidade de partes em relação aos pedidos reconvencionais. Ante o exposto, JULGO PARCIALMENTE PROCEDENTE a ação revisional de alimentos promovida por NICOLAS em face de JOSÉ, para alterar os alimentos a serem pagos pelo réu ao filho, para o valor de 04 (quatro) salários mínimos mensais vigentes, declarando extinto o processo, nos termos do art. 487, I do CPC. Outrossim, JULGO EXTINTA a reconvenção, nos termos do art. 485, VI do CPC. Condeno o réu ao pagamento de custas, despesas processuais e honorários advocatícios que fixo em 12% sobre o valor da causa, considerada a sucumbência na ação principal e na reconvenção. P.R.I. Advogados(s):




    Meu código verifica se ele tem algumas coisas, como palavras específicas e datas, e se tiver algumas palavras ele confirma e faz anotações na agenda do google. É por conta dessas análises que ele tá bugando a data.
    Ele procura por AUDIÊNCIA ou PUBLICAÇÃO, para fazer essas anotações. E para audiência ele olha as datas.


    Veja o trecho específico:

    Código:
                                       
    Dim ResultadoMov As VbMsgBoxResult
                                               
    'analisa audiencia
      If (Forms!xMovPushAnalise![movimento].Text Like "*" & "Audiência" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "Audiencia" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "Conciliação" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "Conciliaçao" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "Conciliacao" & "*") Or _
          (Forms!xMovPushAnalise![movimento].Text Like "*" & "AUDIÊNCIA" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "AUDIENCIA" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "CONCILIAÇÃO" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "CONCILIAÇAO" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "CONCILIACAO" & "*") Or _
          (Forms!xMovPushAnalise![movimento].Text Like "*" & "audiência" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "audiencia" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "conciliação" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "conciliaçao" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "conciliacao" & "*") Then
                                               
       
              ResultadoMov = MsgBox(txt_dr & ", eu li algo sobre uma audiência em " & txtData & " às " & txtHora & "... deseja cadastrar um compromisso de audiência na agenda?", vbYesNo, "Cadastrar Novo Compromisso")
             
              If ResultadoMov = vbYes Then
             
                  DoCmd.OpenForm "xAgenda", acNormal
                  DoCmd.GoToRecord , , acNewRec
                  Forms!xAgenda![Combinação51].Value = Forms!processosfull![Combinação17].Value
                  Forms!xAgenda![Combinação53].Value = Forms!processosfull![NumProc].Value
                  Forms!xAgenda![Combinação49].Value = "AUDIÊNCIA"
                  Forms!xAgenda![DataDia].Value = txtData
                  Forms!xAgenda![DataHora].Value = txtHora
                  Forms!xAgenda![txtSubject].Value = Forms!xAgenda![Combinação49].Value & " | " & Forms!processosfull![NumProc].Value
                  Forms!xAgenda![txt_det].Value = Forms!xAgenda![Combinação49].Value & " | " & Forms!processosfull![NumProc].Value & "  |  Link Esaj: " & Forms!xAgenda![txtLinkEsaj].Value & " | Link Pasta Nuvem do Cliente: " & Forms!xAgenda![txtPastaNuvem].Value
                 
              End If
       
    End If
     
     
                                             
       
    'analisa publicação
    If (Forms!xMovPushAnalise![movimento].Text Like "*" & "REMETIDO AO DJE" & "*") Then
    ResultadoMov = MsgBox(txt_dr & ", eu vi que esse movimento é uma publicação... deseja cadastrar um compromisso de PRAZO na agenda?", vbYesNo, "Cadastrar Novo Compromisso")
    Me.cmbTipoMov = "publicação"
     
              If ResultadoMov = vbYes Then
             
                  DoCmd.OpenForm "xAgenda", acNormal
                  DoCmd.GoToRecord , , acNewRec
                  Forms!xAgenda![Combinação51].Value = Forms!xMovPushAnalise![Combinação17].Value
                  Forms!xAgenda![Combinação53].Value = Forms!xMovPushAnalise![NumProc].Value
                  Forms!xAgenda![Combinação49].Value = "PRAZO"
                  Forms!xAgenda![DataDia].Value = Forms!xMovPushAnalise![DataCadProc].Value
                  'Forms!xAgenda![DataHora].Value = "10:00"
                  Forms!xAgenda![txtSubject].Value = Forms!xAgenda![Combinação49].Value & " | " & Forms!xMovPushAnalise![NumProc].Value
                  Forms!xAgenda![txt_det].Value = Forms!xAgenda![Combinação49].Value & " | " & Forms!xMovPushAnalise![NumProc].Value & "  |  Link Esaj: " & Forms!xAgenda![txtLinkEsaj].Value & " | Link Pasta Nuvem do Cliente: " & Forms!xAgenda![txtPastaNuvem].Value
                 
                 
                  Dim strPrazo As String
                  strPrazo = InputBox(txt_dr & ", digite a seguir quantos dias de prazo quer calcular a partir da data da publicação:", "Cálculo de Prazo [inceptionApp]", "5")
                  Forms!xAgenda![dias_prazo].Value = strPrazo
                 
                 
                  Call Forms("xAgenda").DataDia_AfterUpdate
                     
                     
                  Dim resultadoPrazo As VbMsgBoxResult
                  resultadoPrazo = MsgBox(txt_dr & ", eu calculei que " & strPrazo & " dias úteis a contar da publicação no dia " & CStr(Forms!xAgenda![DataDia]) & " será dia " & CStr(Forms!xAgenda![data_fin]) & ". Deseja usar " & CStr(Forms!xAgenda![data_fin]) & " como data final do prazo?", vbYesNo, "Cadastrar Novo Compromisso")
                  If resultadoPrazo = vbYes Then
                  Forms!xAgenda![DataDia].Value = Forms!xAgenda![data_fin].Value
                  End If
                 
              End If
                   
    End If


    Código Completo:

    Código:
    Private Sub btSaveReg_Click()

    Dim Resultado As VbMsgBoxResult

              Resultado = MsgBox(txt_dr & ", deseja salvar esse registro?", vbYesNo, "Salvar Movimento Push [inceptionApp]")
              If Resultado = vbYes Then
       
                    movimento = Replace(movimento, vbTab, "", , , vbTextCompare)
                    movimento = Replace(movimento, vbLf, "", , , vbTextCompare)
                    movimento = Replace(movimento, vbCrLf, "", , , vbTextCompare)
                    movimento = Replace(movimento, vbCr, "", , , vbTextCompare)
                    movimento = Replace(movimento, vbNullString, "", , , vbTextCompare)
                    movimento = Replace(movimento, vbNewLine, "", , , vbTextCompare)
                    movimento = Replace(movimento, "  ", "", , , vbTextCompare)
                   
                    Me.movimento.SetFocus
                   
                   

               
                                                Dim varData As Date
                                                Dim VarHora As Date
                                                Dim strBox As String
                                                Dim strFrase As String
                                               
                                               
                                                Dim txtData As String
                                                Dim txtHora As String
                                               
                                                strBox = Forms!xMovPushAnalise![movimento]
                                               
                                                '=====================
                                               
                                                Dim strArray() As String
                                               
                                                Dim strParteInteira As Long
                                                Dim i As Long
                                               
                                                'On Error GoTo Fim
                                               
                                                    strBox = Replace(strBox, ".", "") '==== Tira pontos pois se eles estiverem junto com a data ou com as horas, não será detectado
                                                    strBox = Replace(strBox, ",", "") '==== Tira pontos pois se eles estiverem junto com a data ou com as horas, não será detectado
                                                    '==== Se houver outros sinais que atrapalhem, acrescente
                                                    strArray = Split(strBox, " ") '==== Separa as palavras e coloca em uma Matriz
                                                   
                                                    strParteInteira = UBound(strArray) + 1 '==== Determina quantas palavras tem a frase
                                                   
                                                    If strParteInteira = 0 Then '==== Se não há palavra alguma, devolve a string da mesma forma como veio
                                                        strBox = strFrase
                                                        Exit Sub
                                                    End If
                                                   
                                                        For i = 1 To strParteInteira '==== Vai pegar cada palavra e montar novamente, porém uma abaixo da outra
                                                       
                                                     
                                                       
                                                        If IsDate(Format(Trim(strArray(i - 1)), "dd/mm/yyyy")) Then
                                                            If Trim(strArray(i - 1)) Like "##:##" Then VarHora = Trim(strArray(i - 1))
                                                            If (Trim(strArray(i - 1)) Like "##/##/####") Then varData = Trim(strArray(i - 1))
                                                        End If
                                                    Next
                                               
                                                '=====================
                                                txtData = varData
                                                txtHora = VarHora
                                               
                                               
                                                Dim ResultadoMov As VbMsgBoxResult
                                               
                                                'analisa audiencia
                                                    If (Forms!xMovPushAnalise![movimento].Text Like "*" & "Audiência" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "Audiencia" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "Conciliação" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "Conciliaçao" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "Conciliacao" & "*") Or _
                                                        (Forms!xMovPushAnalise![movimento].Text Like "*" & "AUDIÊNCIA" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "AUDIENCIA" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "CONCILIAÇÃO" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "CONCILIAÇAO" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "CONCILIACAO" & "*") Or _
                                                        (Forms!xMovPushAnalise![movimento].Text Like "*" & "audiência" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "audiencia" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "conciliação" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "conciliaçao" & "*") Or (Forms!xMovPushAnalise![movimento].Text Like "*" & "conciliacao" & "*") Then
                                               
                                                     
                                                            ResultadoMov = MsgBox(txt_dr & ", eu li algo sobre uma audiência em " & txtData & " às " & txtHora & "... deseja cadastrar um compromisso de audiência na agenda?", vbYesNo, "Cadastrar Novo Compromisso")
                                                           
                                                            If ResultadoMov = vbYes Then
                                                           
                                                                DoCmd.OpenForm "xAgenda", acNormal
                                                                DoCmd.GoToRecord , , acNewRec
                                                                Forms!xAgenda![Combinação51].Value = Forms!processosfull![Combinação17].Value
                                                                Forms!xAgenda![Combinação53].Value = Forms!processosfull![NumProc].Value
                                                                Forms!xAgenda![Combinação49].Value = "AUDIÊNCIA"
                                                                Forms!xAgenda![DataDia].Value = txtData
                                                                Forms!xAgenda![DataHora].Value = txtHora
                                                                Forms!xAgenda![txtSubject].Value = Forms!xAgenda![Combinação49].Value & " | " & Forms!processosfull![NumProc].Value
                                                                Forms!xAgenda![txt_det].Value = Forms!xAgenda![Combinação49].Value & " | " & Forms!processosfull![NumProc].Value & "  |  Link Esaj: " & Forms!xAgenda![txtLinkEsaj].Value & " | Link Pasta Nuvem do Cliente: " & Forms!xAgenda![txtPastaNuvem].Value
                                                               
                                                            End If
                                                                 
                                                    End If
                                                   
                                                   
                                             
                                                                                                   
                                                'analisa publicação
                                                If (Forms!xMovPushAnalise![movimento].Text Like "*" & "REMETIDO AO DJE" & "*") Then
                                                  ResultadoMov = MsgBox(txt_dr & ", eu vi que esse movimento é uma publicação... deseja cadastrar um compromisso de PRAZO na agenda?", vbYesNo, "Cadastrar Novo Compromisso")
                                                  Me.cmbTipoMov = "publicação"
                                                 
                                                            If ResultadoMov = vbYes Then
                                                           
                                                                DoCmd.OpenForm "xAgenda", acNormal
                                                                DoCmd.GoToRecord , , acNewRec
                                                                Forms!xAgenda![Combinação51].Value = Forms!xMovPushAnalise![Combinação17].Value
                                                                Forms!xAgenda![Combinação53].Value = Forms!xMovPushAnalise![NumProc].Value
                                                                Forms!xAgenda![Combinação49].Value = "PRAZO"
                                                                Forms!xAgenda![DataDia].Value = Forms!xMovPushAnalise![DataCadProc].Value
                                                                'Forms!xAgenda![DataHora].Value = "10:00"
                                                                Forms!xAgenda![txtSubject].Value = Forms!xAgenda![Combinação49].Value & " | " & Forms!xMovPushAnalise![NumProc].Value
                                                                Forms!xAgenda![txt_det].Value = Forms!xAgenda![Combinação49].Value & " | " & Forms!xMovPushAnalise![NumProc].Value & "  |  Link Esaj: " & Forms!xAgenda![txtLinkEsaj].Value & " | Link Pasta Nuvem do Cliente: " & Forms!xAgenda![txtPastaNuvem].Value
                                                               
                                                               
                                                                Dim strPrazo As String
                                                                strPrazo = InputBox(txt_dr & ", digite a seguir quantos dias de prazo quer calcular a partir da data da publicação:", "Cálculo de Prazo [inceptionApp]", "5")
                                                                Forms!xAgenda![dias_prazo].Value = strPrazo
                                                               
                                                               
                                                                Call Forms("xAgenda").DataDia_AfterUpdate
                                                                   
                                                                   
                                                                Dim resultadoPrazo As VbMsgBoxResult
                                                                resultadoPrazo = MsgBox(txt_dr & ", eu calculei que " & strPrazo & " dias úteis a contar da publicação no dia " & CStr(Forms!xAgenda![DataDia]) & " será dia " & CStr(Forms!xAgenda![data_fin]) & ". Deseja usar " & CStr(Forms!xAgenda![data_fin]) & " como data final do prazo?", vbYesNo, "Cadastrar Novo Compromisso")
                                                                If resultadoPrazo = vbYes Then
                                                                Forms!xAgenda![DataDia].Value = Forms!xAgenda![data_fin].Value
                                                                End If
                                                               
                                                            End If
                                                                 
                                                End If
       
                                Me.cmbTipoMov.Value = "andamento"
                                DoCmd.Close acForm, "xmovpushanalise", acSaveYes
                                DoCmd.OpenForm "xmovpushanalise", acNormal
                               
              Else
              MsgBox "Clique  no ícone X para Excluir o Registro se não desejar salvar!"
             
              End If
       

             
    End Sub

    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3686
    Registrado : 04/04/2010

    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Empty Re: [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro)

    Mensagem  Avelino Sampaio em 16/11/2020, 14:48

    Ok,

    irei analisar.


    .................................................................................
    Quer aprender a montar ribbons ?  
    Clique AQUI e conheça o meu aplicativo.
    annissima
    annissima
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 146
    Registrado : 24/10/2017

    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Empty Re: [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro)

    Mensagem  annissima em 16/11/2020, 15:25

    Avelino, vou começar a estudar aquelas expressões regulares. Assinei o site Smile

    O erro aqui dá com a strArray 17082020 que é a data que ele tirou la os pontos...

    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Captura-de-tela-2020-11-16-122306

    Mas (o Damasceno me conhece) sou muito iniciante pra entender todas as fórmulas, então muita coisa vai na tentativa e erro rs
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3686
    Registrado : 04/04/2010

    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Empty Re: [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro)

    Mensagem  Avelino Sampaio em 16/11/2020, 15:45

    Oi

    vc acabou me induzido a um erro de análise, pois na verdade o valor que está chagando no ponto do erro é 17082020 não 17.08.2020.  De qualquer maneira acusará erro de estouro na função format(), devido ao tamanho do número(17082020) a ser analisado.  O valor máximo para o format() sem ocorrer o estouro é 2958465.  Teremos aqui um problema, já que tirar o ponto do texto com a função replace() acarretará na não identificação da data com formatação do ponto.  

    Pelo que percebo, podemos ter várias situações de formato para data:

    dd/mm/yyyy
    d/mm/yyyy
    dd/m/yyyy
    dd/mm/yy
    dd.mm.yyyy
    dd.mm.yyyy.
    ...

    Irei pensar numa solução.


    .................................................................................
    Quer aprender a montar ribbons ?  
    Clique AQUI e conheça o meu aplicativo.
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3686
    Registrado : 04/04/2010

    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Empty Re: [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro)

    Mensagem  Avelino Sampaio em 16/11/2020, 16:06

    Olá!

    Temporariamente, para contornar o erro de estouro, faça a seguinte alteração:

    ...
    For i = 1 To strParteInteira '==== Vai pegar cada palavra e montar novamente, porém uma abaixo da outra
    If Val(Trim(strArray(i - 1))) < 2958466 Then
    If IsDate(Format(Trim(strArray(i - 1)), "dd/mm/yyyy")) Then
    If Trim(strArray(i - 1)) Like "##:##" Then VarHora = Trim(strArray(i - 1))
    If (Trim(strArray(i - 1)) Like "##/##/####") Then varData = Trim(strArray(i - 1))
    End If
    End If
    Next
    ...




    .................................................................................
    Quer aprender a montar ribbons ?  
    Clique AQUI e conheça o meu aplicativo.
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3686
    Registrado : 04/04/2010

    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Empty Re: [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro)

    Mensagem  Avelino Sampaio em 16/11/2020, 16:39

    Olá!

    segue o exemplo utilizando Regex

    O código utilizado para encontrar a data no texto

    Dim dta
    dta = fncER(Me!Movimento, "\d{2}[\/.]\d{2}[\/.]\d{4}", False)
    dta = Replace(dta, ".", "/")
    MsgBox dta


    A expressão captura os textos com os seguintes formatos:

    nn/nn/nnnn
    nn.nn.nnnn
    nn.nn/nnnn
    nn/nn.nnnn

    - Abra o formulário, clique no botão e veja o resultado
    - Altere o formato 17.08.2020 para 17/08/2020 , salve, clique no botão e veja o resultado
    - Acrescente no texto uma segunda data, salve, clique no botão e veja o resultado.

    Aguardamos
    Anexos
    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Attachmentanna.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (42 Kb) Baixado 4 vez(es)


    .................................................................................
    Quer aprender a montar ribbons ?  
    Clique AQUI e conheça o meu aplicativo.
    annissima
    annissima
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 146
    Registrado : 24/10/2017

    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Empty Re: [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro)

    Mensagem  annissima em 16/11/2020, 17:36

    Avelino, boa tarde!

    Funcionou, com a alteração a seguir para substituir:

    Código:
    Dim dta1
    Dim dta2
    dta1 = fncER(Me!Movimento, "\d{2}[\/.]\d{2}[\/.]\d{4}", False)
    dta2 = Replace(dta1, ".", "/")
    MsgBox dta1 & ", " & dta2
    Me.Movimento = Replace(Me!Movimento, dta1, dta2, , , vbTextCompare)


    Agora pensei no seguinte: ele vai substituir apenas a primeira data, correto? E se tiver mais de uma data?
    Observei que ele pega tanto datas com / como com .
    As com / não são problemas.

    Aí mudei o Regex para assim:
    Código:
    dta1 = fncER(Me!Movimento, "\d{2}[.]\d{2}[.]\d{4}", False)

    Teria como colocar pra ele tentar ver todas as datas no box?

    Ele até enxerga, mas substitui só a primeira.
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3686
    Registrado : 04/04/2010

    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Empty Re: [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro)

    Mensagem  Avelino Sampaio em 16/11/2020, 17:58

    Anna

    qual é a ideia em alterar o formato da data no campo movimento ?   Para utilizar o seu código original ?

    Bom, o regex ao encontrar mais de uma data irá retorna como uma "|" separando.  Assim:

    17.08.2020|20/08/2020|15.09.2020

    Se houver casos em que retorna mais de uma data, então deve acrescentar a função Split() para separar. Experimente assim:

    Dim dta, x, i As Byte
    dta = fncER(Me!Movimento, "\d{2}[\/.]\d{2}[\/.]\d{4}", False)
    x = Split(dta, "|")
    For i = 0 To UBound(x)
       Me!Movimento = Replace(Me!Movimento, x(i), Replace(x(i), ".", "/"))
    Next
    DoCmd.RunCommand acCmdSaveRecord


    Aguardamos


    Última edição por Avelino Sampaio em 16/11/2020, 21:53, editado 1 vez(es)


    .................................................................................
    Quer aprender a montar ribbons ?  
    Clique AQUI e conheça o meu aplicativo.
    annissima
    annissima
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 146
    Registrado : 24/10/2017

    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Empty Re: [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro)

    Mensagem  annissima em 16/11/2020, 19:34

    Mestre, funcionou! <3 obrigada!


    Ainda preciso estudar demais pra entender esse rolê todo.. rs

    Respondendo ao que vc perguntou, sim, preciso usar no código original.

    Basicamente, é isso: Ele abre o navegador, acessa o processo, baixa o conteúdo, separa desde a última atualização, coloca cada movimento relacionado ao processo, gera relatórios, salva na nuvem e manda e-mails avisando os clientes.
    Essa tela que estávamos corrigindo é uma tela para ver os andamentos antes de liberar pro cliente. Tem coisa que o cliente não vai ver, tem coisa que pode excluir.. e se tiver publicação ou prazo, ele marca na agenda do google.
    Então tenho a opção de analisar manualmente antes de deixar ele mandar tudo.

    Era importante corrigir as datas para evitar os erros de estouro, às vezes pode ter mais de uma data no mesmo texto.

    Obrigada! flower flower flower
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3686
    Registrado : 04/04/2010

    [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro) Empty Re: [Resolvido]Corrigir ou Colocar ON ERROR (Erro em Tempo de Execução nº 6 - Estouro)

    Mensagem  Avelino Sampaio em 16/11/2020, 20:09

    Anna

    obrigado pelo feedback

    Eu não sei se poderá acontecer de um texto não ter data. Se esta possibilidade existir, será necessário entra com mais uma alteração no código:

    Dim dta, x, i As Byte
    dta = fncER(Me!Movimento, "\d{2}[\/.]\d{2}[\/.]\d{4}", False)
    If Not dta = Empty Then
    x = Split(dta, "|")
    For i = 0 To UBound(x)
    Me!Movimento = Replace(Me!Movimento, x(i), Replace(x(i), ".", "/"))
    Next
    DoCmd.RunCommand acCmdSaveRecord
    End If


    Sucesso!


    .................................................................................
    Quer aprender a montar ribbons ?  
    Clique AQUI e conheça o meu aplicativo.

    annissima gosta desta mensagem


      Data/hora atual: 4/12/2020, 04:52