Página 1 de 1
impedir nomes repetidos - células com validação
Enviado: 17 Jul 2020 às 17:49
por albinosergio
Senhores,
Já pesquisei muito e não encontrei o que eu realmente preciso, preciso de um VBA que IMPEÇA repetição de nomes repetidos em determinadas linhas, sendo que TODAS as células são composta por nomes em lista de validação, e preciso que ao selecionarmos, erroneamente, um nome já escalado naquela linha, seja de imediato, aberto uma janela informando a repetição de nome.
O anexo abaixomostra melhor a situação. Desde de já antecipo meus agradecimentos pelas constantes ajudas.
Re: impedir nomes repetidos - células com validação
Enviado: 17 Jul 2020 às 20:25
por osvaldomp
Olá, Albino.
Veja se ajuda.
Código: Selecionar todosPrivate Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Columns("C:J")) Is Nothing Or Target.Value = "" Then Exit Sub
If Application.CountIf(Cells(Target.Row, 3).Resize(, 8), Target.Value) > 1 Then
If MsgBox("Nome repetido, deseja mantê-lo?", vbQuestion + vbYesNo, "Atenção!") = vbYes Then Exit Sub
Target.Value = ""
End If
End Sub
Re: impedir nomes repetidos - células com validação
Enviado: 17 Jul 2020 às 22:50
por albinosergio
Cara!!! simplesmente fantástico (aplausos pra você!)
Esqueci de observar um detalhe, nessa escala, no periodo de 12h a 14h precisa-se de 2 pessoas e as duplas interagem entre si, totalizando em 26 combinações de pares diferentes, por isso as colunas (G, H) são preenchidas com a função "PROCV".
Assim, nessa coluna, a Macro só envia a MSG preenchendo primeiro a função.
Desculpe por favor, e se não for possível, não tem problema, o que você já fez me deixou feliz demais da conta.
Segue abaixo o anexo do que eu citei acima.
Muitíssimo obrigado e descuulpe-me mais uma vez.
Re: impedir nomes repetidos - células com validação
Enviado: 18 Jul 2020 às 10:06
por osvaldomp
albinosergio escreveu:
Assim, nessa coluna, a Macro só envia a MSG preenchendo primeiro a função.
Albino, desculpe, mas não entendi esse comentário acima.
Você quis dizer que a macro faz e não é pra fazer, ou que a macro não faz e deveria fazer. Ou a macro não deve considerar os conteúdos das colunas F:H ?
No seu exemplo você colocou Joel em C4 e em G4 também está Joel. O que você quer fazer nesse caso?
Seria útil se você puder colocar alguns exemplos e informar o que deseja fazer em cada caso.
Re: impedir nomes repetidos - células com validação
Enviado: 18 Jul 2020 às 11:59
por albinosergio
Bom dia Oswaldo,
Na planilha que anexei novamente, inseri sua "obra* (macro) e funcionou perfeitamente. Só que nas colunas do período de 12h a 14h tem a função PROCV, e quando o nome é preenchido pela função a macro não envia a msg.
Só informa quando essa coluna (PROCV) é preenchida primeiro que as outras colunas
Se você fizer uns teste na planilha nova que enviei poderá observar.
Obrigado pelo seu retorno.
Re: impedir nomes repetidos - células com validação
Enviado: 18 Jul 2020 às 15:18
por osvaldomp
Olá, Albino.
Agora entendi.
Coloque uma cópia do código abaixo no lugar do anterior. Já ajustei o código considerando as colunas que você adicionou na tabela.
Código: Selecionar todosPrivate Sub Worksheet_Change(ByVal Target As Range)
Dim k As Boolean
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Columns("C:L")) Is Nothing Or Target.Value = "" Then Exit Sub
If Target.Column = 6 Then
If Application.CountIf(Cells(Target.Row, 3).Resize(, 10), Target.Offset(, 1).Value) > 1 Or _
Application.CountIf(Cells(Target.Row, 3).Resize(, 10), Target.Offset(, 2).Value) > 1 Then k = True
ElseIf Application.CountIf(Cells(Target.Row, 3).Resize(, 10), Target.Value) > 1 Then k = True
End If
If k Then
If MsgBox("Nome repetido, deseja mantê-lo?", vbQuestion + vbYesNo, "Atenção!") = vbYes Then Exit Sub
Target.Value = ""
End If
End Sub
dicas:
1. em G3 altere a fórmula de ~~~> =SEERRO(PROCV(F3;P2:Q15;2;0);"") para ~~~> =SEERRO(PROCV(F3;P
$3:Q
$16;2;0);"")
2. em H3 altere a fórmula de ~~~> =SEERRO(PROCV(F3;P2:R15;3;0);"") para ~~~> =SEERRO(PROCV(F3;P
$3:R
$16;3;0);"")
em seguida arraste ambas para baixo
3. nas
Validações de Dados aplique
Intervalo Dinâmico Nomeado, assim a lista não exibirá vazios e na coluna F não exibirá os números que não tenham os nomes em Q:R
Re: impedir nomes repetidos - células com validação
Enviado: 18 Jul 2020 às 15:44
por albinosergio
É DEMAIS!!! Valeu Oswaldo, muito show!
ficou 300% perfeito, você não faz idéia de como me ajudou.
Muito obrigado mesmo, mais uma vez pela costumeira presteza sua e de sua equipe.
Um abraço grande