none
Excel VBA: Problema ao inserir dados na planilha RRS feed

  • Pergunta

  • Uso a seguinte fórmula para inserir os dados na planilha como números:

    If TextBox4 <> "" Then
    ActiveSheet.Cells(17, 1) = CDbl(TextBox4)
    End If

    Acontece que se eu preencher o textbox, clicar em inserir, depois apagar e clicar em inserir de novo; os números permanecem na planilha, mas eu quero que a célula fique em branco, já que não há números.

    Outra coisa, como faço para permitir que um botão só seja clicado após um outro botão ser clicado primeiro?

    Vlw 


    quinta-feira, 2 de outubro de 2014 13:26

Respostas

  • Clicando com o botão direito no TextBox, selecione propriedades (caso as propriedades do componente não estejam sendo exibidas no lado esquerdo da janela). Na lista que aparecer altere a propriedade MaxLength para a quantidade de caracteres que você precisa.

    Caso deseje fazer esta validação via código, pode fazer da seguinte forma

      If Len(TextBox1.Text) >= 11 Then
        MsgBox "Você ultrapassou o limite de caracteres"
      End If

    Bráulio Figueiredo

    braulio@braulioti.com.br - http://www.braulioti.com.br


    quinta-feira, 2 de outubro de 2014 18:30
  • Sobre a primeira dúvida, use o código:

      If IsNumeric(TextBox4) Then
        Range("A17") = CDbl(TextBox4)
      Else
        If TextBox4 = "" Then
          Range("A17").ClearContents
        Else
          MsgBox "Digite um número ou deixe a caixa de texto vazia!", vbCritical
          TextBox4.SetFocus
        End If
      End If
    

    Sobre sua segunda dúvida, considerando que CommandButton2 pode ser pressionado apenas se CommandButton já houver sido pressionado, use um código como:

    Private Sub UserForm_Initialize()
      CommandButton2.Enabled = False
    End Sub
    
    Private Sub CommandButton1_Click()
      CommandButton2.Enabled = True
    End Sub
    v



    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    quinta-feira, 2 de outubro de 2014 21:32
    Moderador

Todas as Respostas

  • Olá Speedy,

    Basta criar uma condição caso não esteja em branco

    If textbox4 <> "" Then
        ActiveSheet.Cells(17, 1) = CDbl(textbox4)
    Else
        ActiveSheet.Cells(17, 1) = ""
    End If

    Bráulio Figueiredo

    braulio@braulioti.com.br - http://www.braulioti.com.br

    quinta-feira, 2 de outubro de 2014 18:09
  • Vlw Bráulio.Mais uma dúvida, você sabe como eu faço para que uma text só aceite 11 ou 14 caracteres? Exibindo uma msg se estiver diferente disso?

    quinta-feira, 2 de outubro de 2014 18:24
  • Clicando com o botão direito no TextBox, selecione propriedades (caso as propriedades do componente não estejam sendo exibidas no lado esquerdo da janela). Na lista que aparecer altere a propriedade MaxLength para a quantidade de caracteres que você precisa.

    Caso deseje fazer esta validação via código, pode fazer da seguinte forma

      If Len(TextBox1.Text) >= 11 Then
        MsgBox "Você ultrapassou o limite de caracteres"
      End If

    Bráulio Figueiredo

    braulio@braulioti.com.br - http://www.braulioti.com.br


    quinta-feira, 2 de outubro de 2014 18:30
  • Sobre a primeira dúvida, use o código:

      If IsNumeric(TextBox4) Then
        Range("A17") = CDbl(TextBox4)
      Else
        If TextBox4 = "" Then
          Range("A17").ClearContents
        Else
          MsgBox "Digite um número ou deixe a caixa de texto vazia!", vbCritical
          TextBox4.SetFocus
        End If
      End If
    

    Sobre sua segunda dúvida, considerando que CommandButton2 pode ser pressionado apenas se CommandButton já houver sido pressionado, use um código como:

    Private Sub UserForm_Initialize()
      CommandButton2.Enabled = False
    End Sub
    
    Private Sub CommandButton1_Click()
      CommandButton2.Enabled = True
    End Sub
    v



    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    quinta-feira, 2 de outubro de 2014 21:32
    Moderador