Ir ao conteúdo
  • Cadastre-se

Impedir cadastro com células em branco


Ir à solução Resolvido por minoso,

Posts recomendados

Boa tarde, consegui desenvolver na minha planilha uma guia somente para a função CADASTRAR, que no meu caso é para inserir os dados de um funcionário novo. A fórmula está funcionando bem, porém preciso impedir que ao clicar no botão CADASTRAR ela insira uma linha "vazia" no meu banco de dados (outra guia). Não tenho a mínima ideia de como fazer isso. Uma luz pessoal!

 

Essa fórmula copia as colunas da guia de cadastro e leva para uma guia de transição, que só após isso a insere em um AUTOFILTRO que contém os demais cadastros de funcionários.

Sub CADASTRAR()'' CADASTRAR Macro''    Sheets("COLETA").Select    Rows("2:2").Select    Selection.Copy    Rows("3:3").Select    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _        :=False, Transpose:=False    Rows("3:3").Select    Application.CutCopyMode = False    Selection.Copy    Sheets("CONTROLE").Select    Rows("5:5").Select    Selection.Insert Shift:=xlDown    Sheets("CADASTRO").Select    Application.CutCopyMode = False    Range("AJ25,AJ26,AJ27,AJ28,AJ29,AJ30,AJ31").Select    ActiveCell.FormulaR1C1 = "1"    Range( _        "C8:S8,C10:S10,C12:S12,C14:H14,I14:Q14,C18:H18,I18:S18,C22:AF22,C25:AF27,U8:AF8,AC10:AF10,U14:AF14,U12,U18:Z18" _        ).Select    Selection.ClearContents    Range("D29").Select    MsgBox "Cadastro efetuado com sucesso!", vbInformation
Link para o comentário
Compartilhar em outros sites

Olá amigo,

 

Passei por algo semelhante, resolvi da seguinte maneira. Inseri na Macro algo que deletasse as linhas que conter uma célula em branco.

Range("B8:B30").Select        Selection.SpecialCells(xlCellTypeBlanks).Select        Selection.EntireRow.Delete

Ou seja, dentro desse range, se a primeira celula de cada linha estiver em branco, ela deleta a linha inteira.

 

você pode adicionar na sua, a macro ia criar a linha e se tiver vazia ela mesmo exclui.

 

Espero ter ajudado

Link para o comentário
Compartilhar em outros sites

Para ficar um código mais ágil procure sempre q possível utilizar 'Activate' ao invés de 'Select'.

 

Eventualmente você tb poderia utilizar a solução p/ inserir novos dados do Excel como no endereço abaixo:

https://support.office.microsoft.com/pt-br/article/Adicionar-editar-localizar-e-excluir-linhas-usando-um-formul%C3%A1rio-de-dados-edd9dec9-5ce7-4b93-9d7e-c80c089cedb7?CorrelationId=232217ff-9cb5-445b-b52f-83b6897532f1&ui=pt-BR&rs=pt-BR&ad=BR

Link para o comentário
Compartilhar em outros sites

Bom dia @minoso. Ainda não consegui bloquear o cadastro vazio. Segue link para download da planilha de teste, nela está em destaque as guias em VERMELHO.

 

Entre em CONTROLE, depois em CADASTRO (faça um teste clicando em cadastrar, a macro retorna a mensagem dizendo que o cadastro foi efetuado com sucesso). Pensei em duas formas de bloquear isso: 1 - quando clicar em cadastrar, impedindo de realizar tal função e 2 - preenchendo célula á célula retornando a mensagem de campo não pode ficar vazio.

 

Att

 

http://www.4shared.com/file/PPEAayiWba/TESTE3.html

Link para o comentário
Compartilhar em outros sites

@Diogo Flammarion

 

Não modifiquei o seu código, apenas inclui as linhas que eram necessárias para validar se o cadastro segue ou não com campos vazios. As alterações, claro, estão na macro CADASTRAR que você havia criado e quanto as linhas que eu adicionei ao seu código, estão comentadas para identificação do que foi alterado.

 

Qualquer dúvida, por favor, poste novamente aqui no tópico. ;)


Resumindo, inseri a seguinte lógica

 

SE o campo nome do colaborador estiver vazio, então NÃO EXECUTE NADA e EXIBA a msg de erro. Caso contrário (campo validado), execute o cadastro como deve ser :)

TESTE3.rar

Link para o comentário
Compartilhar em outros sites

Minoso, é justamente isso mesmo que eu precisava. Porém como posso estender essa verificação para as demais células?? ...Preciso fazer essa verificação em todos os campos a serem preenchidos (endereço, nascimento, etc).

 

Uma dúvida, você inseriu esse comando : GoTo Final - ela "leva ao final sem executar aqueles demais comandos no meio da macro ou não?

 

Agradeço pela solução, simples e eficaz. 

Link para o comentário
Compartilhar em outros sites

  • Solução

@Diogo Flammarion

 

Agora que você possui a lógica, programar não será o problema.

 

Quanto ao GOTO, vou explicar a sintaxe: ele orienta o executor da macro (responsável por ler e executar linha a linha da programação que você fez) a ir diretamente para a linha que foi nomeada como FINAL, no nosso caso. Você pode usar qualquer título, qualquer um que facilite a leitura e manutenção da macro. Note que lá no final da macro eu nomeei uma linha como "FINAL:" (sem aspas). Ou seja, quando o executor cair na linha GOTO Final ele saberá que deve pular todas as linhas e ir direto pra linha com o nome FINAL, então a partir daí ele sai executando as coisas - como não há mais nada para executar depois do FINAL, ele simplesmente fecha a macro e a considera como executada.

 

Com relação a validação dos demais campos, você vai precisar fazer um IF encadeado, algo parecido com isso

 

If Range("A2").Value = 0 Then

msgbox "Preencha o nome!"

Goto Final

Else

If Range("B2").Value = "-" Then

.         MsgBox "Preencha o campo X"

.         Goto Final

.         Else

.                   If etc etc etc

.                   End if

End If

End if

 

Importante: Não esqueça que sempre que abrir um IF ele precisa de um END IF para fechá-lo.

 

Obs.: Coloquei os pontinhos (.) apenas para entender a abertura e fechamento de cada SE (If), chamamos esse método na programação de "identação" - apenas para organização do código.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!