Contribuindo:
Apesar de seu codigo "questionar" os campos obrigatórios; primeiro insere os dados no banco, para depois efetuar o questionamento; quando deveria ser o inverso.
Então sua rotina poderia ser:
Private Sub SALVAR_Click()
Dim TotalRegistro As Long
TotalRegistro = Worksheets("BANCO DE DADOS").UsedRange.Rows.Count + 1
If Cliente.Text = "" Then
MsgBox "Escolher cliente, Fornecedor, ou Colaborador"
Exit Sub
ElseIf RAZÃO.Text = "" Then
MsgBox "Preencha o campo Nome/Razão Social"
Exit Sub
ElseIf CPF.Text = "" Then
MsgBox "Preencha o campo CPF/ CNPJ"
Exit Sub
ElseIf FONE1.Text = "" Then
MsgBox "Peencha o campo Fone1"
Exit Sub
Else
With Worksheets("BANCO DE DADOS")
.Cells(TotalRegistro, 1) = Cliente
.Cells(TotalRegistro, 2) = Função
.Cells(TotalRegistro, 3) = RAZÃO
.Cells(TotalRegistro, 4) = FANTASIA
.Cells(TotalRegistro, 5) = Pessoa
.Cells(TotalRegistro, 6) = CPF
.Cells(TotalRegistro, 7) = INSCRIÇÃO
.Cells(TotalRegistro, 8) = FONE1
.Cells(TotalRegistro, 9) = FONE2
.Cells(TotalRegistro, 10) = FAX
.Cells(TotalRegistro, 11) = CELULAR
.Cells(TotalRegistro, 12) = CONTATO
.Cells(TotalRegistro, 13) = EMAIL1
.Cells(TotalRegistro, 14) = EMAIL2
.Cells(TotalRegistro, 15) = SITE
.Cells(TotalRegistro, 16) = CEP
.Cells(TotalRegistro, 17) = ENDEREÇO
.Cells(TotalRegistro, 18) = NÚMERO
.Cells(TotalRegistro, 19) = BAIRRO
.Cells(TotalRegistro, 20) = CIDADE
.Cells(TotalRegistro, 21) = estado
.Cells(TotalRegistro, 22) = OBSERVAÇÕES
End With
MsgBox "Salvo com sucesso"
End If
End Sub
Se quiser utilizar a proposta do colega Alexandre, seu codigo ficaria:
Private Sub SALVAR_Click()
Dim TotalRegistro As Long
Dim Msg
TotalRegistro = Worksheets("BANCO DE DADOS").UsedRange.Rows.Count + 1
Msg = "Preenchimento Obrigatório" ' Define a mensagem
If Cliente.Text.Value = "" Then
strVazia = "Cliente"
MsgBox (strVazia & ", INVALIDO"), vbCritical, Msg
Cliente.Text.SetFocus
ElseIf RAZÃO.Text.Value = "" Then
strVazia = "Razao Social"
MsgBox (strVazia & ", INVALIDO"), vbCritical, Msg
RAZÃO.Text.SetFocus
ElseIf CPF.Text.Value = "" Then
strVazia = "CPF/CNPJ"
MsgBox (strVazia & ", INVALIDA"), vbCritical, Msg
CPF.Text.SetFocus
ElseIf FONE1.Text.Value = "" Then
strVazia = "Fone1"
MsgBox (strVazia & ", INVALIDO"), vbCritical, Msg
FONE1.Text.SetFocus
Else
With Worksheets("BANCO DE DADOS")
.Cells(TotalRegistro, 1) = Cliente
.Cells(TotalRegistro, 2) = Função
.Cells(TotalRegistro, 3) = RAZÃO
.Cells(TotalRegistro, 4) = FANTASIA
.Cells(TotalRegistro, 5) = Pessoa
.Cells(TotalRegistro, 6) = CPF
.Cells(TotalRegistro, 7) = INSCRIÇÃO
.Cells(TotalRegistro, 8) = FONE1
.Cells(TotalRegistro, 9) = FONE2
.Cells(TotalRegistro, 10) = FAX
.Cells(TotalRegistro, 11) = CELULAR
.Cells(TotalRegistro, 12) = CONTATO
.Cells(TotalRegistro, 13) = EMAIL1
.Cells(TotalRegistro, 14) = EMAIL2
.Cells(TotalRegistro, 15) = SITE
.Cells(TotalRegistro, 16) = CEP
.Cells(TotalRegistro, 17) = ENDEREÇO
.Cells(TotalRegistro, 18) = NÚMERO
.Cells(TotalRegistro, 19) = BAIRRO
.Cells(TotalRegistro, 20) = CIDADE
.Cells(TotalRegistro, 21) = estado
.Cells(TotalRegistro, 22) = OBSERVAÇÕES
End With
MsgBox "Salvo com sucesso"
End If
End Sub
Observação: Nenhuma das rotinas foi testada
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 13/04/2013 11:35 am