none
Duvida no VBA RRS feed

  • Pergunta

  • Boa Noite

    tenho um formulario, onde consta

    b = 0
                 For b = 1 To 8
                 
          Select Case True
                Case botão_st
                    Cells(i, 10) = "x"
                    botão_st = False
                Case botão_sn
                    Cells(i, 11) = "x"
                    botão_sn = False
                Case botão_t
                    Cells(i, 12) = "x"
                    botão_t = False
                Case botão_qt
                    Cells(i, 13) = "x"
                    botão_qt = False
                Case botão_qn
                    Cells(i, 14) = "x"
                    botão_qn = False
                Case botão_sbm
                    Cells(i, 15) = "x"
                    botão_sbm = False
                Case botão_sbt
                    Cells(i, 16) = "x"
                    botão_sbt = False
                    
                 Case Else
                    MsgBox "ESCOLHA PELO MENOS UM DIA DE TRABALHO"
                    Exit Sub
              End Select
    b = b + 1
              Next

    - o problema é que este CASE ELSE deveria dar um loop e não dar continuidade à gravação

    Onde está o erro?

    obrigado pela atenção

    sexta-feira, 12 de dezembro de 2014 22:20

Todas as Respostas

  • Boa Noite

    tenho um formulario, onde consta

    b = 0
                 For b = 1 To 8
                 
          Select Case True
                Case botão_st
                    Cells(i, 10) = "x"
                    botão_st = False
                Case botão_sn
                    Cells(i, 11) = "x"
                    botão_sn = False
                Case botão_t
                    Cells(i, 12) = "x"
                    botão_t = False
                Case botão_qt
                    Cells(i, 13) = "x"
                    botão_qt = False
                Case botão_qn
                    Cells(i, 14) = "x"
                    botão_qn = False
                Case botão_sbm
                    Cells(i, 15) = "x"
                    botão_sbm = False
                Case botão_sbt
                    Cells(i, 16) = "x"
                    botão_sbt = False
                    
                 Case Else
                    MsgBox "ESCOLHA PELO MENOS UM DIA DE TRABALHO"
                    Exit Sub
              End Select
    b = b + 1
              Next

    - o problema é que este CASE ELSE deveria dar um loop e não dar continuidade à gravação até o acionamento de um check box pelo menos.

    Onde está o erro?

    obrigado pela atenção


    sexta-feira, 12 de dezembro de 2014 22:22
  • Você está dizendo que "deveria dar um loop" e "não dar continuidade" ... uma coisa está matando a outra.

    Você quer que pare ou continue? Da forma que está, o código está parando quando nenhuma das condições for verdadeiras, se quer que continue, basta tirar este Exit Sub.


    Dicas:

    quando você usa o laço for, você não precisa informar o incremento nem o valor inicial fora do laço:

    'você está fazendo assim: b = 0 for b = 1 to 10 b = b + 1 next

    'Basta fazer assim:

    for b = 1 to 8

    next



    Natan

    sexta-feira, 12 de dezembro de 2014 23:43