ATENÇÃO NOVOS USUÁRIOS

Se registrou recentemente? Seu cadastro será avaliado e mendiante aprovação, a conta será ativada e você poderá usufruir do fórum. O tempo de avaliação gira em torno de 24 a 48 horas.

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.

Impedir dados duplicados com critério

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
Delzor
Acabou de chegar
Acabou de chegar
Mensagens: 2
Registrado em: Dom Jan 26, 2020 7:34 pm

Impedir dados duplicados com critério

Mensagem por Delzor » Qui Fev 27, 2020 8:39 am

Prezados, bom dia.
Eu estou elaborando uma planilha de controle de pedidos e notas, e dentro da empresa em que trabalho, existem centro de divisões de custos e sub-divisões.

Gostaria que meu list box impedisse a entrada de um dado duplicado para cada centro.

Por exemplo, eu trabalho em uma obra em Campo Grande e os centros são Hidráulica, Elétrica e Pintura.

Se eu já tenho Hidráulica em Campo Grande registrado, gostaria que fosse proibido, mas que esse centro ficasse aberto para outras obras em outras cidades.

E se possível também que fosse de uma forma menos pesada para a planilha, pois como poder ver nos dois últimos códigos da planilha eu possuo um código que impede isso no listbox mas utilizando o If, não queria cair em uma cadeia de comando maior ainda, pois ainda vou dar um upgrade na planilha para inserir mais coisas.

Quem puder dar uma mão aí, agradeço muito.

Segue o link para download da planilha:
https://www.sendspace.com/file/bvzhso

Valeu.



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.


srobles
Jedi
Jedi
Mensagens: 779
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Impedir dados duplicados com critério

Mensagem por srobles » Qui Fev 27, 2020 3:18 pm

Delzor,

Tentei baixar o arquivo do link, porém o mesmo apresenta problemas.
Se possível, suba novamente o arquivo ok?


Espero ter ajudado.

Abs.

Saulo Robles


Remember when you were young?
You shone like the sun.
Shine On You Crazy Diamond


Se suas dúvidas foram esclarecidas, acrescente ao lado do título o texto [RESOLVIDO].

Delzor
Acabou de chegar
Acabou de chegar
Mensagens: 2
Registrado em: Dom Jan 26, 2020 7:34 pm

Re: Impedir dados duplicados com critério

Mensagem por Delzor » Qui Fev 27, 2020 3:49 pm

Olá Saulo, segue o link postado no 4Shared.

https://www.4shared.com/file/WHdee5Aeea ... Obras.html

Não achei no corpo do tópico algum lugar que pudesse fazer um upload local.



srobles
Jedi
Jedi
Mensagens: 779
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Impedir dados duplicados com critério

Mensagem por srobles » Qui Fev 27, 2020 4:37 pm

Delzor,

Ao redigir uma mensagem / tópico, abaixo do campo de texto, existe a opção Anexos, ao lado de Opções.
Basta adicionar o arquivo compactado (zipado).


Espero ter ajudado.

Abs.

Saulo Robles


Remember when you were young?
You shone like the sun.
Shine On You Crazy Diamond


Se suas dúvidas foram esclarecidas, acrescente ao lado do título o texto [RESOLVIDO].

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.


srobles
Jedi
Jedi
Mensagens: 779
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Impedir dados duplicados com critério

Mensagem por srobles » Sex Fev 28, 2020 4:56 pm

Delzor,

Analisando seu modelo, acredito que a informação vital para que a validação dos dados funcione a contento, é o local da obra.

Experimente esta informação em ambas Functions que validam os dados, exemplo :
A function que valida a PEP :

Código: Selecionar todos

Private Function VerificarPEP(nomePEP As String, localOBRA As String) As Boolean ' declara a  função auxiliar para verificar  PEPs repetidos

Dim linRG As Integer ' declara a varíável que irá contar o tanto de linha que existe no listbox
    linRG = ListBoxRg.ListCount ' conta o tanto de linhas que tem na listbox
    
    VerificarPEP = False
    
    For i = 0 To linRG - 1
    
        If UCase(nomePEP) = UCase(ListBoxRg.List(i, 3)) Then
            If UCase(localOBRA) = UCase(ListBoxRg.List(i, 2)) Then
                VerificarPEP = True
                Exit For
            End If
        End If
    Next i
    
End Function
A Function que valida a DESCRIÇÃO :

Código: Selecionar todos

Private Function VerificarDES(nomeDES As String, localOBRA As String) As Boolean ' declara a  função auxiliar para verificar as descrições repetidas

Dim linRG As Integer ' declara a varíável que irá contar o tanto de linha que existe no listbox
    linRG = ListBoxRg.ListCount ' conta o tanto de linhas que tem na listbox
    
    VerificarDES = False
    
    For i = 0 To linRG - 1
    
        If UCase(nomeDES) = UCase(ListBoxRg.List(i, 4)) Then
            If UCase(localOBRA) = UCase(ListBoxRg.List(i, 2)) Then
                VerificarDES = True
                Exit For
            End If
        End If
    Next i
    
End Function
E no botão de cadastro, altere as seguintes linhas :
De :

Código: Selecionar todos

If VerificarPEP(TbRgPEP.Text)=True Then
If VerificarDES(TbRgDes.Text)=True Then
Para :

Código: Selecionar todos

If VerificarPEP(TbRgPEP.Text, TbRgObr) = True Then
If VerificarDES(TbRgDes.Text, TbRgObr) = True Then


Espero ter ajudado.

Abs.

Saulo Robles


Remember when you were young?
You shone like the sun.
Shine On You Crazy Diamond


Se suas dúvidas foram esclarecidas, acrescente ao lado do título o texto [RESOLVIDO].

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