VBA

Como impedir o cadastro de uma célula em branco

Criou um cadastro e não quer permitir que os usuários cadastrem valores em branco? Então confira esse código

Por Maximiliano Meyer em 18/05/2018 às 08:49 - atualizado: 18/05/2018 08:49

Recebi a dúvida de hoje por e-mail. No e-mail o nosso amigo Rudney queria saber como impossibilitar que um usuário deixasse uma determinada célula em branco. O processo pode ser útil para você caso esteja usando uma planilha de cadastro, como esta de cadastro de clientes que temos disponível para download gratuitamente

Nosso leitor estava tentando fazer através da validação de dados, o que não é possível, pois de alguma maneira você terá que executar uma verificação para ver o que ficou em branco e o que foi preenchido. E é nessa parte que entra nosso amigo VBA.

Vamos lá:

Fazendo a verificação

O código que vamos ver hoje é facílimo e contém pouquíssimas linhas, 3 na verdade: Uma para fazer a verificação da célula (se ela está em branco ou não) e a outra para exibir uma mensagem de erro caso o usuário não tenha colocado os dados. Esta mensagem será exibida através de uma MsgBox, ou seja, uma caixa de diálogo que já aprendemos a criar aqui nesta aula do curso de VBA

Sem mais delongas o código será:

Sub verificar_em_branco()

Dim flag As Integer
flag = 0

If Range("E2").Value = "" Then
    MsgBox "O campo X não pode ficar vazio", 48, "Campo em branco"
    flag = 1
End If

Explicando as 2 linhas do código:

  • Na linha do If o Excel testa se a célula "E2" é igual a nada, ou seja, igual a "" (aspas com nada dentro)
  • Depois a mensagem vem dentro de uma caixa de texto onde a primeira parte é a mensagem a ser exibida ao usuário, o número 48 corresponde ao triângulo amarelo com o sinal de exclamação (mais opções podem ser vistas aqui) e a última parte diz respeito ao título da caixa de mensagem
  • Já a flag será uma marcação para sabermos se o usuário entrou com algum valor em branco ou não. Mais pra frente isso ficará claro, não se preocupe

Como impedir o cadastro de uma célula em branco

Depois é só repetir quantos ifs e mensagens de texto forem necessárias às suas células. Por exemplo:

Sub verificar_em_branco()

If Range("E2").Value = "" Then
    MsgBox "O campo X não pode ficar vazio", 48, "Campo em branco"
End If

If Range("E3").Value = "" Then
    MsgBox "O campo Y não pode ficar vazio", 48, "Campo em branco"
End If

If Range("E4").Value = "" Then
    MsgBox "O campo Z não pode ficar vazio", 48, "Campo em branco"
End If

End Sub

 

Salvando os dados somente quando todos estiverem corretos

Ok, mas ainda falta um ponto importante no código. No exemplo acima falamos sobre nossa planilha de cadastro e como não desejamos salvar quando informações estiverem faltando. Foi por isso que colocamos a variável flag e você vai ver a sua importância agora.

Se você olhar no início do código vai ver que ela recebe o valor 0 (zero) e que, caso aconteça de qualquer uma das células monitoradas estiverem em branco a variável irá receber o valor 1.

Assim vamos colocar mais uma verificação no final do nosso código depois de testarmos todas as células que não podem ficar em branco. A verificação é a seguinte: Se a variável flag estiver com o valor 0 (ou seja, nenhuma célula estiver em branco) as informações serão gravadas no banco de dados.

As linhas de código que usamos para isso será a seguinte:

If flag = 0 Then
    Call salvar
End If

Veja que se flag continuar com o valor inicial de zero iremos chamar a macro "salvar". Apenas altere o nome caso a sua função não se chame "salvar" e pronto.

No final, após todos os pedacinhos de códigos forem inseridos ficará mais ou menos assim (repare que coloquei uma mensagem para avisar que a gravação foi concluída com sucesso) e a macro de verificar e salvar foi inserida em um botão (aprenda como fazer isto clicando aqui):

Sub verificar_em_branco()

Dim flag As Integer
flag = 0

If Range("E2").Value = "" Then
    MsgBox "O campo X não pode ficar vazio", 48, "Campo em branco"
    flag = 1
End If

If Range("E3").Value = "" Then
    MsgBox "O campo Y não pode ficar vazio", 48, "Campo em branco"
    flag = 1
End If

If Range("E4").Value = "" Then
    MsgBox "O campo Z não pode ficar vazio", 48, "Campo em branco"
    flag = 1
End If

If flag = 0 Then
    Call salvar
    MsgBox "Dados salvos com sucesso", 64, "Gravação efetuada"
End If

End Sub

Abaixo um GIF mostrando o processo onde o usuário não coloca todos os dados e depois com tudo correto onde a gravação é executada.

Como impedir o cadastro de uma célula em branco

Abaixo o download da planilha criada na aula de hoje para você conferir e tirar alguma dúvida:

Clique aqui para fazer o download do arquivo

Problemas com o download?

Veja nosso tutorial e saiba como resolver qualquer tipo de problema que você enfrentar para baixar,abrir ou executar nossas planilhas.

Espero que tenham gostado dessa dica. E se você também tiver dúvidas faça como Rudney e envie no e-mail max@desenvolveweb.com.br

relacionados

Participe
do nosso grupo

recentes

compartilhe este post

O que ler em seguida

comentários

  • ASSINE NOSSA NEWSLETTER

    As melhores publicações no
    seu e-mail