none
Identificação de célula como texto ou número RRS feed

  • Pergunta

  • Estou descrevendo uma macro e não estou conseguindo avançar: Na instrução "GoalSeek" quando digito número com ponto ou vírgula, o a instrução na célula Entrada corrige, mas quando coloco uma palavra a macro trava e a planilha, que tem senha e outras instruções, fica aberta, e não consigo avançar. Quero que ao digitar algo que não seja número, um texto, palavra, letra, a instrução If aborta a macro e conclui a macro indo para a instrução definida, protegendo com senha e tudo mais, o que acontece quando clica em sair ou simplesmente scape. Já tentei de várias maneiras colocar uma terceira instrução no If mas não deu certo. Alguém pode me ajudar?

          ....

          Dim Entrada     As Variant

          Entrada = InputBox("AAA" & Chr(13) & Chr(13) & "BBB")

           Range("S70").Value = Entrada

          Entrada = Replace(Entrada, ",", ".")

          If Entrada = 0 Or Entrada <> "" Then

          Range("S69").Select

          Range("S69").GoalSeek Goal:=Entrada, ChangingCell:=Range("S62")

          ....

          Antecipadamente agradeço.          

     

    quarta-feira, 21 de março de 2018 12:40

Todas as Respostas

  • JuSeFerrari,
       Tente fazer essa verificação:

    If InStr("0123456789", Chr(KeyAscii)) = 0) Then ...

       Para saber mais sobre o "Instr":

    ===============================

    Trabalhando Strings no Visual Basic
    ...
    d-) Instr$(Inicio,string1,string2,[Compare]) 
    ...

    http://www.macoratti.net/strings.htm

    ===============================

    []'s,
    Fabio I.
    quarta-feira, 21 de março de 2018 16:49
  • Basta testar se é número:

    If Not IsNumeric(Entrada) Then Exit Sub

    Ou solicitar digitar novamente.

    Obs.: Pode testar antes do Replace que funciona certinho.


    Filipe Magno

    • Sugerido como Resposta Fabio I sábado, 24 de março de 2018 12:59
    sábado, 24 de março de 2018 02:40