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

Sign in to follow this  
hesilva

Como fazer com que os dados nao se repitam

Recommended Posts

hesilva

Boas Pessoal, venho aqui mais uma vez para tentar saber que codigo posso usar no vba excel para quando estou a inserir num formulario, numa texbox o numero de bi, ele me retorne com erro se esse mesmo bi ja estivar na coluna? ou seja um controlo para nao haver dados repetido tipo na coluna A..

Share this post


Link to post
Share on other sites
joseA

Esse "bi" seria um identificador?

Se for tente assim

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

' Verifica qual a ultima linha preenchida (Folha1 - VBAProject)
    lastRow = Folha1.Cells(Rows.Count, 1).End(xlUp).Row
'Guarda a area a procurar colunaA se dados repetidos txt1
    Set rg = Folha1.Range("A2:A" & lastRow)
'Caso não encontre nenhum nome igual cadastra
    If rg.Find(TextBox1.Text) Is Nothing Then
  If MsgBox("Confirma entrada de dados de: " & Me.TextBox2 & " ?", vbYesNo + vbQuestion, "Cadastro") = vbNo Then
   Exit Sub
  End If
        Folha1.Cells(lastRow + 1, 1) = TextBox1.Text
        Folha1.Cells(lastRow + 1, 2) = TextBox2.Text
    Else
        MsgBox "Código já existente!", vbCritical
        Exit Sub
    End If
MsgBox "Entrada de dados: " & Me.TextBox2 & " realizada com sucesso !!!", 64, "Cadastro"

End Sub

Share this post


Link to post
Share on other sites
hesilva

como é que eu meto aqui aquele codigo que me deste, para nao se repetir o campo.... O campo ARTIGO é como se fosse o B.I

Private Sub FORNECER_Click()

        Dim ultimaLinha As Long

        Dim ws As Worksheet

        Set ws = Worksheets("CARDEX_FORN")

       

       

        ' Verifica qual a ultima linha preenchida

        ultimaLinha = ws.Cells(65536, 1).End(xlUp).Row + 1

        ' Preenche as células

        ws.Cells(ultimaLinha, 1).Value = ARTIGO.Text

        If Len(ARTIGO.Text) = 0 Then

        MsgBox "campo de preenchimento Obrigatório.", vbExclamation

        Exit Sub

        End If

        ws.Cells(ultimaLinha, 2).Value = DESCR.Text

        ws.Cells(ultimaLinha, 3).Value = MODEL.Text

        ws.Cells(ultimaLinha, 4).Value = FABR.Text

        ws.Cells(ultimaLinha, 5).Value = CAT.Text

        ws.Cells(ultimaLinha, 6).Value = UF.Text

        ws.Cells(ultimaLinha, 7).Value = QT.Text

        ws.Cells(ultimaLinha, 8).Value = PRECO.Text

        ws.Cells(ultimaLinha, 9).Value = IVA.Text

Share this post


Link to post
Share on other sites
hesilva

jose foi uma grande ajuda...ja ta feito consegui meter o codigo... tenho mais uma duvida...e penso que seja a ultima  :bored:

como vez no codigo em cima, é para inserir dados numa tabela, para gestao de stock. em suma o que preciso é: como impedir que o fornecimento seja maior que a quantidade existente...ate aqui nao e complicado agora...como vou associar a quantidade com o Artigo...deve ser qualquer coisa do tipo procv.... espero que percebam o que pretendo Brigado

Share this post


Link to post
Share on other sites
hesilva

eu gravei uma macro enquanto fazia a funcao procv e deu-me isto:

ActiveCell.FormulaR1C1 = "=VLOOKUP(R[-16]C,R[-11]C[-6]:R[-7]C[-3],2,FALSE)"

é possivel fazer a partir daqui? se der que me explica? ;)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.