Esqueceu sua senha? Você pode usar o mecanismo de lembrete neste link: Recuperar senha

Você receberá um link de reativação no email cadastrado.

Não recebeu o email? Lembre-se checar o Lixo Eletrônico.

Validação de Dados

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
pedrobb
Colaborador
Colaborador
Mensagens: 61
Registrado em: Qua Jul 25, 2012 12:42 pm
Localização: Montes Claros-MG

Validação de Dados

Mensagem por pedrobb » Qua Jul 25, 2012 8:41 pm

Em uma seleção de células (B5:P5) uso a validação de dados para Não Permitir valores Repetidos: =NÃO(CONT.SE($B5:$P5;B5)>1)
Funciona muito Bem.

Agora preciso que o Intervalo aceite somente Valores de 01 a 99.

Pode ser por VBA ou Excel. Alguém pode ajudar?

Grato,
Pedro



Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Neri

Re: Validação de Dados

Mensagem por Neri » Sex Jul 27, 2012 7:37 am

Bom dia Pedro
Usando a validação de Dados, em Permitir - Dados de Minimo até Máximo, não funciona?
Att.



Avatar do usuário
joseA
Jedi
Jedi
Mensagens: 1008
Registrado em: Qui Out 22, 2009 7:22 am
Localização: Cel. Fabriciano - MG

Re: Validação de Dados

Mensagem por joseA » Sex Jul 27, 2012 10:11 am

Código: Selecionar todos

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Application.EnableEvents = False

If Not Intersect(Target, Range("B5:P5")) Is Nothing Then
    If Target.Value < 1 Then 'de 01 a 99.
        MsgBox "Somente Valores de 01 a 99"
  
    End If
    If Target.Value > 99 Then
        MsgBox "Somente Valores de 01 a 99"
    End If
End If
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub


Se o post lhe agradou clique no sinal de positivo (ao lado de citar).

pedrobb
Colaborador
Colaborador
Mensagens: 61
Registrado em: Qua Jul 25, 2012 12:42 pm
Localização: Montes Claros-MG

Re: Validação de Dados

Mensagem por pedrobb » Sáb Jul 28, 2012 8:37 am

JoseA,
Obrigado pela ajuda.

Tá dando conflito, pois já tenho a Worksheet_Change abaixo:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Range("A15") Is Nothing Then
If Range("a15") = "PARABÉNS!" Then
Alarme1
End If
If Range("a15") = "" Then
Sheets("Dados").Label2.Visible = False
End If

End If
End Sub

Dá prá juntar?
Outra coisa, gostaria que o foco voltasse para a célula com valor indevido.
Grato,
Pedro



Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
joseA
Jedi
Jedi
Mensagens: 1008
Registrado em: Qui Out 22, 2009 7:22 am
Localização: Cel. Fabriciano - MG

Re: Validação de Dados

Mensagem por joseA » Sáb Jul 28, 2012 11:54 am

Tente:

Código: Selecionar todos

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Application.EnableEvents = False

If Not Intersect(Target, Range("B5:P5")) Is Nothing Then
    If Target.Value < 1 Then 'de 01 a 99.
        MsgBox "Somente Valores de 01 a 99"
        Target.Offset(0, 0).Select
        Target = ""
  
    End If
    If Target.Value > 99 Then
        MsgBox "Somente Valores de 01 a 99"
        Target.Offset(0, 0).Select
        Target = ""
    End If
End If


If Not Range("A15") Is Nothing Then
If Range("a15") = "PARABÉNS!" Then
'Alarme1
End If
If Range("a15") = "" Then
Sheets("Dados").Label2.Visible = False
Else
Sheets("Dados").Label2.Visible = True
End If

End If
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub


Se o post lhe agradou clique no sinal de positivo (ao lado de citar).

pedrobb
Colaborador
Colaborador
Mensagens: 61
Registrado em: Qua Jul 25, 2012 12:42 pm
Localização: Montes Claros-MG

Re: Validação de Dados

Mensagem por pedrobb » Sáb Jul 28, 2012 12:54 pm

Very Good!
Isso mesmo que eu precisava.
Obrigado, amigo.
Pedro



Avatar do usuário
joseA
Jedi
Jedi
Mensagens: 1008
Registrado em: Qui Out 22, 2009 7:22 am
Localização: Cel. Fabriciano - MG

Re: Validação de Dados

Mensagem por joseA » Sáb Jul 28, 2012 8:58 pm

Vlw ;)


Se o post lhe agradou clique no sinal de positivo (ao lado de citar).

pedrobb
Colaborador
Colaborador
Mensagens: 61
Registrado em: Qua Jul 25, 2012 12:42 pm
Localização: Montes Claros-MG

Re: Validação de Dados

Mensagem por pedrobb » Sáb Jun 04, 2016 11:55 am

Pessoal,
Agora, no Intervalo B5:P14 preciso impedir a Digitação de Valores Repetidos nas Céluasl das Linhas (B5:P5, B6:P6........ até B14:P14).
Ao encontrar Valor Repetido, avisar com Mensagem de Erro.

Obs: No Excel, Em Validação de Dados, usava a fórmula: =NÃO(CONT.SE($B5:$P5;b5)>1).
Mas preciso do código pelo Vba.
Grato,

Pedro



pedrobb
Colaborador
Colaborador
Mensagens: 61
Registrado em: Qua Jul 25, 2012 12:42 pm
Localização: Montes Claros-MG

Re: Validação de Dados

Mensagem por pedrobb » Sáb Jun 11, 2016 4:37 pm

Com a ajuda de Osvaldomp e AlexandreVBA, ficou assim:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Or IsEmpty(Target(1, 1)) Then Exit Sub
If Intersect(Target, Range("B5:P14")) Is Nothing Then Exit Sub
If WorksheetFunction.CountIf(Range(Cells(Target.Row, 2), Cells(Target.Row, 16)), Target.Value) > 1 Then
MsgBox Target.Value & " Já existe"
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
End If
End Sub



Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder