• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

JTualufo

Registos sem repeticao

6 mensagens neste tópico

Boas, eu desenvolvi um sistema de logística que controla requisição de material. Durante o teste do sistema, verificou-se que o numero de requisição (um dos campos do sistema) tem que ser único para cada requisição e não pode haver repetição... gostaria que me ajudassem a descobrir o código que possibilite verificar se o numero lançado já existe na coluna 'requisição' da pilinha onde os dados são guardados antes de registar a requisição, se o numero não existir registar, caso contrario, informar que o numero já existe. o que eu quero na verdade, eh um algoritmo que percore a coluna e compara valor a ser introduzido com os valores já introduzidos e garantir que os valores nao sejam iguais...

Obrigado  :hmm:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Verifique essa publicação:

Option Explicit

Private Sub Grava()
Dim lastRow As Long
Dim rg As Range

    ' Verifica qual a ultima linha preenchida
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row
    
    ' Guarda a area a procurar
    Set rg = Range("A2:A" & lastRow)
    
    ' Caso não encontre nenhum nome igual
    If rg.Find(TextBox1.Text) Is Nothing Then
        Cells(lastRow + 1, 1) = TextBox1.Text
        Cells(lastRow + 1, 2) = TextBox2.Text
    Else
        MsgBox "Não é possível inserir este aluno. O código já existe!", vbCritical
    End If

End Sub

Deste post: http://www.portugal-a-programar.pt/index.php?showtopic=24386

Acho que atenderia a vossa necessidade.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado amigo, este também serve muito bem, mas já havia conseguido o seguinte:

    sub gravar()

    Dim lastrow As Long

    Dim x As Long

   

    Dim se As Worksheet

   

    Set se = Worksheets("seguimento")

   

    lastrow = se.Cells(Rows.Count, 1).End(xlUp).Row

   

    For x = 2 To lastrow

   

        If se.Cells(x, 2).Value = Me.txtNumeroRequisicao.Value Then

        MsgBox ("Este numero de requisição já foi usado, por favor introduza outro numero valido...")

        Exit Sub

        End If

end sub

    Next

agora vou usar o seu código talvez responda de forma adequada a minha necessidade... abraços :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Outra solução poderá ser a que se segue, utilizando a opção Validação de Dados

Sub aaaa()

      With Range("A1:A1000").Validation

        .Delete

        .Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:= _

        xlBetween, Formula1:="''''=CONT.SE($A$1:$A$1000;A1)=1"

        .IgnoreBlank = True

        .InCellDropdown = True

        .InputTitle = ""

        .ErrorTitle = "Numero Duplicado!"

        .InputMessage = ""

        .ErrorMessage = "Este número ja foi digitado!"

        .ShowInput = True

        .ShowError = True

    End With

    Range("I1").Select

End Sub

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora