Wagner, também havia pensado nessa hipótese, mas infelizmente não para optar por ela... no caso da checkbox é para exatamente obrigar o usuário a marcar a seleção...
Franca, a ideia do Wagner é valida, é só deixar a Propriedade dois Options como "FALSE", assim eles não estarão selecionados por padrão, e depois fazer a verificação conforme a rotina que o Patropi passou alterando o tipo do controle, lembrando que o controle OptionButton não aceita ter os dois selecionados de uma vez, diferente do CheCkbox que se pode selecionar os dois.
Patropi, da forma que colocou funciona corretamente (isoladamente), mas pelo que vi na rotina do franca ele incluiu apos outras verificações que no meu entender apos da primeira execução e atendendo a primeira condição é pulado as demais condições.
Franca, procure evitar utilizar muitos IF .. com a instrução Exit Sub, isto pode causar problemas tipo o que comentou, quando queremos fazer a verificação de mais de uma condição, procure utilizar IF ... ELSEIF ...END IF, veja na ajuda do VBA sobre estas opçoes.
Como não tenho o modelo para testar, veja se da forma abaixo atende o que pretende.
Private Sub btninserir_Click()
If txtCidade.Text = "" Then
MsgBox "INFORME A QUANTIDADE", vbExclamation, "Campo Obrigatório"
txtCidade.SetFocus
ElseIf CheckBox1 = False And CheckBox2 = False Then
MsgBox "Cliente ou Loja?", vbExclamation, "Campo Obrigatório"
ElseIf txtmotivo.Text = "" Then
MsgBox "INFORME O MOTIVO", vbExclamation, "Campo Obrigatório"
txtCidade.SetFocus
Else
Dim UltimaLinha As Object
Set UltimaLinha = Plan1.Range("A2000").End(xlUp)
UltimaLinha.Offset(1, 0).Value = txtNomeEmpresa.Text
UltimaLinha.Offset(1, 1).Value = txtNomeContato.Text
UltimaLinha.Offset(1, 2).Value = txtCargoContato.Text
UltimaLinha.Offset(1, 3).Value = txtEndereco.Text
UltimaLinha.Offset(1, 4).Value = txtCidade.Text
UltimaLinha.Offset(1, 5).Value = txtRegiao.Text
UltimaLinha.Offset(1, 6).Value = txtCEP.Text
UltimaLinha.Offset(1, 7).Value = txtPais.Text
UltimaLinha.Offset(1, 8).Value = txtTelefone.Text
UltimaLinha.Offset(1, 9).Value = txtFax.Text
UltimaLinha.Offset(1, 10).Value = txtHomePage.Text
UltimaLinha.Offset(1, 12).Value = txtmotivo.Text
If Me.CheckBox1.Value = True Then UltimaLinha.Offset(1, 11).Value = "Cliente"
If Me.CheckBox2.Value = True Then UltimaLinha.Offset(1, 11).Value = "Loja"
MsgBox "Item inserido com sucesso..."
txtNomeEmpresa.Text = ""
txtNomeContato.Text = ""
txtCargoContato.Text = ""
txtEndereco.Text = ""
txtCidade.Text = ""
txtRegiao.Text = ""
txtCEP.Text = ""
txtPais.Text = ""
txtTelefone.Text = ""
txtFax.Text = ""
txtHomePage = ""
txtmotivo = ""
CheckBox1 = ""
CheckBox2 = ""
txtCodigoFornecedor.SetFocus
With txtCodigoFornecedor
.SetFocus
.SelStart = 0
.SelLength = Len(txtCodigoFornecedor.Text)
End With
End If
End Sub
Qualquer duvida retorne.
[]s
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 02/10/2013 8:29 am