Ir para conteúdo
Fórum Script Brasil
  • 0

Problemas com IF


Nelson Cruz

Pergunta

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 para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...