Notifications
Clear all

Procurar valor e Exibir MsgBox

3 Posts
2 Usuários
0 Reactions
1,135 Visualizações
(@rafaelst)
Posts: 11
Active Member
Topic starter
 

Boa Tarde Galera,

Tenho uma planilha de dados, e a Coluna D Não pode conter nenhum numero repitido, caso isso ocorra gostaria que fosse gerada uma mensagem.
Fiz esse código, más não esta funcionando como eu esperava.

Alguma modificação ou alteração ?

Se puder Ajudar :D

Segue Código.

Moderas Eu não achei nenhum Tópico com o mesmo assunto que o meu, os que eu achei nao me serviram, se puder indicar um antes de Fechar esse agradeço !!


Private Sub CommandButton1_Click()

If TextBox3 = "" Then
MsgBox "PREENCHA O CAMPO"
Exit Sub

Else

Plan1.Range("D3").Select  ' Seleciona Celula D3

End If

Do ' Repita

If IsNumeric(ActiveCell) Then ' Verifica se é uma celula numerica
If ActiveCell.Value = TextBox3.Value Then  ' Se for Correspondente A Textbox3 para
MsgBox "Já Cadastrado"

Exit Do
End If

ActiveCell.Offset(0, 1).Select ' Seleciona Celula Abaixo

If IsEmpty(ActiveCell) Then ' Verifica se a celula está vazia

Exit Do
End If
Else
Exit Do

End If

Loop Until ActiveCell.Text = TextBox3.Text

End Sub

 
Postado : 27/05/2015 10:30 am
(@srobles)
Posts: 231
Estimable Member
 

Rafael, bom dia!

Se entendi direito, vc não quer que seja inserido um valor (TextBox3 no caso) repetido na planilha, correto?

Se sim, tente este código :

Private Sub CommandButton1_Click()
    If TextBox3 = "" Then 'se o textbox estiver vazio
        MsgBox "Preencha o campo!" 'exibe a mensagem
        TextBox3.SetFocus 'move o foco para o textbox
        Exit Sub 'sai da rotina
    Else
        If IsNumeric(TextBox3) Then 'se o textbox contiver apenas numeros
            Sheets("Plan1").Activate 'seleciona a planilha 1
                For i = 2 To ActiveSheet.UsedRange.Rows.Count + 1 'laço para verificar cada celula da coluna D
                    Cells(i, "D").Select 'seleciona uma linha na coluna D, no a linha a 2
                    Dim vCel As String 'define uma variavel do tipo string para analise posterior
                        vCel = ActiveCell.Value 'setamos o valor dela com o valor da celula ativa
                        If vCel = TextBox3.Value Then 'se a variavel for igual ao textbox
                            MsgBox "Já cadastrado!" 'exibe a mensagem
                            TextBox3.SetFocus 'move o foco para o textbox
                            Exit Sub 'sai da rotina
                        Else 'senão
                            If ActiveCell.Value = "" Then 'se a celula ativa estiver em branco
                               ActiveCell.Value = TextBox3 'seta o valor desta celula para o valor do textbox
                               Exit For 'sai do for
                            End If 'fim do laço
                        End If 'fim do laço
                Next 'proxima linha na coluna D
        Else 'senão
            MsgBox "Digite apenas números!" 'exibe mensagem
            TextBox3 = "" 'seta o valor do textbox para vazio
            TextBox3.SetFocus 'move o foco para o textbox
            Exit Sub 'sai da rotina
        End If 'fim do laço
    End If 'fim do laço
End Sub 

Avise ai se der certo.

[]s

Espero ter ajudado.

Abs.

Saulo Robles

 
Postado : 05/06/2015 10:34 pm
(@rafaelst)
Posts: 11
Active Member
Topic starter
 

Cara valew mesmo, más eu mudei a forma de fazer os lançamentos, pois a forma que encontrei estava dando muitos erros !!

Valew mesmo assim

Abraço !

 
Postado : 16/06/2015 10:58 am