Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
#57274
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.
Você não está autorizado a ver ou baixar esse anexo.
#57279
Olá, Albino.

Veja se ajuda.
Código: Selecionar todos
Private 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
#57282
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.
Você não está autorizado a ver ou baixar esse anexo.
#57296
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.
#57297
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.
#57300
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 todos
Private 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
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord