Jump to content
Fórum Script Brasil
  • 0

Problemas com IF


Nelson Cruz

Question

Pessoal estou apanhando um pouco da lógica e gostaria de contar com a ajuda de vocês.

Estou criando uma macro para manipular um sistema na minha empresa. e não estou conseguindo montar os ifs em um determinado ponto.

Estou testando isso, mais se isso for falso teria que testar outras três linhas para depois voltar com a minha macro e fazer um outro registro.

If sess0.Screen.GetString(11, 2, 6) = "NORMAL" Then
If sess0.Screen.GetString(23, 4, 54) = "TECLE <ENTER> PARA VERIFICAR A EXISTENCIA DE CONTRATOS" Then

            sess0.Screen.SendKeys ("<ENTER>")
            GoSub Tempo
            GoSub Tempo
         If sess0.Screen.GetString(11, 2, 6) = "NORMAL" Then
            sess0.Screen.putstring "s", 10, 15, 1
         
            sess0.Screen.SendKeys ("<ENTER>")
            GoSub Tempo
            GoSub Tempo
            sess0.Screen.SendKeys ("<ENTER>")
            GoSub Tempo
            GoSub Tempo


            varData = sess0.Screen.GetString(20, 32, 2) & "/" & sess0.Screen.GetString(20, 37, 2) & "/" & sess0.Screen.GetString(20, 42, 4)
            If CDate(varData) >= CDate(rsC("DataAgend")) Then
              MsgBox "Grava"
             Else
              'MsgBox "Não grava"
            End If

            sess0.Screen.SendKeys ("<PF3>")
            GoSub Tempo
            sess0.Screen.SendKeys ("<PF3>")
            GoSub Tempo
            sess0.Screen.SendKeys ("<PF3>")
            GoSub Tempo
            sess0.Screen.SendKeys ("<PF3>")

        


            b = 1
        End If
        End If


'         MsgBox sess0.Screen.GetString(22, 4, 18)
'         End


Pula:
         rsC.MoveNext
      Loop
   End If
   rsC.Close
   
   MsgBox "Fim"

   Exit Sub
   

Tempo:
   For b = 1 To 50000000
   Next
   Return

End Sub

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0
hummm... Isso é um bot pra operar outro sistema?

Isso, essa macro vai se conectar em um outro sistema para pegar algunas informações.

vendo aqui direito eu deveria usar um for para pegar dados de três linhas, mais não estou conseguindo. está dando erro de loop sem do.

Private Sub cmdPasso2_Click()

   Dim varData       As String




'********** iniciar variáveis **************************
   Dim sess0, x      As Object
   Dim system        As Object
   Dim rsR           As Recordset
   Dim mteste, wper  As String
   Dim vEXTRA        As String
   Dim b, z, s, n    As Long
'****************  P R I N C I P A L  *************************
   Dim rs, ts        As Recordset
   Dim varPos        As Currency
   Dim varEvo        As Currency
'**************************************************************
   
   Set system = CreateObject("EXTRA.System")
    
'   varArquivo = Dir("c:\Arquivos de programas\Attachmate\E!E2K\Sessions\RedeCaixa2.edp")

 ' começo da abertura do EXTRA ===================================================

   If (system Is Nothing) Then
      MsgBox "Não foi possível criar o objeto EXTRA. Anulando execução da macro !."
      Stop
   End If
        
'   If varArquivo <> "" Then
'      vEXTRA = "c:\Arquivos de programas\Attachmate\E!E2K\EXTRA.exe " + _
'               "c:\Arquivos de programas\Attachmate\E!E2K\Sessions\RedeCaixa2.edp"
'   Else
'      vEXTRA = "e:\Arquivos de programas\Attachmate\E!E2K\EXTRA.exe " + _
'               "e:\Arquivos de programas\Attachmate\E!E2K\Sessions\RedeCaixa2.edp"
'   End If
   
'   GoSub Tempo
   
'   Shell vEXTRA
   Set sess0 = system.ActiveSession
   
'   GoSub Tempo
'   GoSub Tempo
'   GoSub Tempo
'   GoSub Tempo
'   GoSub Tempo
'   GoSub Tempo
'   GoSub Tempo
'   GoSub Tempo
'   GoSub Tempo
   
'   If sess0.Screen.GetString(17, 16, 17) <> "SELECIONE A OPCAO" Then
'      GoSub Tempo
'      GoSub Tempo
'      GoSub Tempo
'   End If
   
'   sess0.Screen.putstring "5", 17, 38, 1
'   sess0.Screen.putstring "20", 17, 41, 2
'   sess0.Screen.SendKeys ("<ENTER>")

'   GoSub Tempo
   
'   If sess0.Screen.GetString(13, 2, 8) = "AMBIENTE" Thens
'      GoSub Tempo
'      GoSub Tempo
'      GoSub Tempo
'   End If
   
'   sess0.Screen.putstring "c088264", 16, 19, 7
'   sess0.Screen.putstring "vit1204", 16, 42, 7
'   sess0.Screen.SendKeys ("<ENTER>") '

'   GoSub Tempo
   
'   If sess0.Screen.GetString(4, 22, 21) = "SISTEMA DE APLICACOES" Then
'      GoSub Tempo
'      GoSub Tempo
'      GoSub Tempo
'   End If

   sess0.Screen.putstring "05", 5, 15, 2
   sess0.Screen.putstring "20", 6, 15, 2
   sess0.Screen.SendKeys ("<ENTER>")
   
   GoSub Tempo
   
   If sess0.Screen.GetString(4, 22, 21) = "SISTEMA DE APLICACOES" Then
      GoSub Tempo
      GoSub Tempo
      GoSub Tempo
   End If

   Dim varTipo As String
   Dim rsC As Recordset
   
   Set rsC = CurrentDb.OpenRecordset("tbResultado", dbOpenDynaset)
   If rsC.RecordCount <> 0 Then
      Do While Not rsC.EOF
         If Len(rsC("cpfcnpj")) <= 11 Then
            sess0.Screen.putstring "1", 6, 13, 1
            sess0.Screen.SendKeys ("<ENTER>")
         ElseIf Len(rsC("cpfcnpj")) > 11 Then
            sess0.Screen.putstring "2", 6, 13, 1
            sess0.Screen.SendKeys ("<ENTER>")
         End If
         
         GoSub Tempo
         
         If sess0.Screen.GetString(9, 3, 6) = "NUMERO" Then
            GoSub Tempo
            GoSub Tempo
            GoSub Tempo
         End If
         
         sess0.Screen.putstring "            ", 9, 16, 12
         sess0.Screen.putstring "  ", 9, 31, 2
         sess0.Screen.putstring Left(rsC("cpfcnpj"), Len(rsC("cpfcnpj")) - 2), 9, 16, Len(Left(rsC("cpfcnpj"), Len(rsC("cpfcnpj")) - 2))
         sess0.Screen.putstring Right(rsC("cpfcnpj"), 2), 9, 31, 2
         sess0.Screen.SendKeys ("<ENTER>")
         
         GoSub Tempo
         GoSub Tempo
         
         If sess0.Screen.GetString(22, 4, 18) = "DV DO CPF INVALIDO" Then
            rsC.Edit
               rsC("Erro") = 1
               rsC("Ocorrencia") = sess0.Screen.GetString(22, 4, 18)
            rsC.Update
            GoTo Pula
         End If
         If sess0.Screen.GetString(22, 4, 22) = "NUMERO DO CPF INVALIDO" Then
            rsC.Edit
               rsC("Erro") = 2
               rsC("Ocorrencia") = sess0.Screen.GetString(22, 4, 22)
            rsC.Update
            GoTo Pula
         End If






         If sess0.Screen.GetString(23, 4, 54) = "TECLE <ENTER> PARA VERIFICAR A EXISTENCIA DE CONTRATOS" Then

            sess0.Screen.SendKeys ("<ENTER>")
            GoSub Tempo
            GoSub Tempo
            
         For s = 10 To 16
         n = 11
         If sess0.Screen.GetString(n, 2, 9) = "LIQUIDADO" Then
         
                         
          sess0.Screen.putstring "s", s, 15, 1
            
         
            sess0.Screen.SendKeys ("<ENTER>")
            GoSub Tempo
            GoSub Tempo
            sess0.Screen.SendKeys ("<ENTER>")
            GoSub Tempo
            GoSub Tempo


            varData = sess0.Screen.GetString(20, 32, 2) & "/" & sess0.Screen.GetString(20, 37, 2) & "/" & sess0.Screen.GetString(20, 42, 4)
            If CDate(varData) >= CDate(rsC("DataAgend")) Then
              MsgBox "Grava"
             Else
              'MsgBox "Não grava"
            End If

            sess0.Screen.SendKeys ("<PF3>")
            GoSub Tempo
            sess0.Screen.SendKeys ("<PF3>")
            GoSub Tempo
            sess0.Screen.SendKeys ("<PF3>")
            GoSub Tempo
            sess0.Screen.SendKeys ("<PF3>")

        

            n = n + 3
            b = 1
           End If

s = s + 3
Next


'         MsgBox sess0.Screen.GetString(22, 4, 18)
'         End


Pula:
         rsC.MoveNext
      Loop
   End If
   rsC.Close

   MsgBox "Fim"

   Exit Sub
   

Tempo:
   For b = 1 To 50000000
   Next
   Return

End Sub

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...