TSinésio Postado Junho 7, 2010 Denunciar Share Postado Junho 7, 2010 (editado) Pessoal,tem alguma função no excel que eu consigo limitar informações repetidas na mesma linha?Ex: na linha 20 eu escrevi "Thiago", essa palavra não poderia aparecer novamente.eu consegui esse macro que faz o que eu quero, só que ele está limitando as informações somente nas colunas, não nas linhas! Como faço para ele limitar nas linhas e não nas colunas??------------Option Explicit Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim nLinComp, nLinFim As Integer nLinFim = 1 Do While Not IsEmpty(Cells(nLinFim, 1)) nLinFim = nLinFim + 1 Loop nLinComp = 1 Do While nLinComp <= nLinFim - 2 If Cells(nLinFim - 1, 1).Value = Cells(nLinComp, 1).Value Then MsgBox "Informação duplicada", vbCritical, "Cadastro CGC !" Cells(nLinFim - 1, 1).Activate Cells(nLinFim - 1, 1).Interior.ColorIndex = 4 Exit Sub Else nLinComp = nLinComp + 1 End If Loop Cells(nLinComp + 1, 1).Activate Cells(nLinFim - 1, 1).Interior.ColorIndex = xlNone Cells(nLinFim, 1).Interior.ColorIndex = xlNone End Sub--------------------Agradeço a atenção Editado Junho 7, 2010 por kuroi Adicionar tag CODE Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Junho 7, 2010 Denunciar Share Postado Junho 7, 2010 dando uma olhada no seu codigo, acho q você pudia fazer o seguinte:ta vendo no seu codigo q aparece escrito Cells e logo em seguida é aberto parenteses?? dentro do parenteses tem sempre ([alguma coisa], 1). se você trocar isso por (1, [alguma coisa]) em todas as vezes q aparecer escrito Cells deve fazer o q você quer. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 TSinésio Postado Junho 7, 2010 Autor Denunciar Share Postado Junho 7, 2010 (editado) Cara, desde já agradeço sua ajuda, solucionou o problema, porém está dando dois erros:1) quando digito alguma informação em alguma linha e dou enter a caixa de texto vai para A2. Ex: digitei algo na j 35, quando dou enter a celula volta pra A2 (mas a informação fica no lugar certo).2) só marca como informação repetida na linha 1. As outras linhas não verificam se está repetido.O código ta assim:Option Explicit Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim nLinComp, nLinFim As Integer nLinFim = 1 Do While Not IsEmpty(Cells(1, nLinFim)) nLinFim = nLinFim + 1 Loop nLinComp = 1 Do While nLinComp <= nLinFim - 2 If Cells(1, nLinFim - 1).Value = Cells(1, nLinComp).Value Then MsgBox "Informação duplicada", vbCritical, "Cadastro CGC !" Cells(1, nLinFim - 1).Activate Cells(1, nLinFim - 1).Interior.ColorIndex = 4 Exit Sub Else nLinComp = nLinComp + 1 End If Loop Cells(nLinComp + 1, 1).Activate Cells(1, nLinFim - 1).Interior.ColorIndex = xlNone Cells(1, nLinFim).Interior.ColorIndex = xlNone End Sub Editado Junho 7, 2010 por kuroi Adicionar tag CODE Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Junho 7, 2010 Denunciar Share Postado Junho 7, 2010 é, o codigo original acho q so testava a coluna 1 tb e agora e ficou testando so a linha 1.mas você quer q, quando ele digita, ele testa todas as linhas da planilha ou so a linha em q ele esta digitando. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 João.Neto Postado Junho 7, 2010 Denunciar Share Postado Junho 7, 2010 Use o próprio recurso nativo do Excel:Selecionar o Range de dados a serem validados, no caso a linha 10 inteira.Dados -> Validação de Dados Em Configurações, no ComboBox Permitir, selecionar a opção Personalizado. Em Configurações, no ComboBox Fórmula, usar a seguinte Fórmula =CONT.SE($10:$10;A10)=1 Depois, personalize as mensagens de erro na guia Alerta de erro.Este exemplo serve para o Excel 2007. Ver referência de validação de dados para as demais versões. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 TSinésio Postado Junho 7, 2010 Autor Denunciar Share Postado Junho 7, 2010 (editado) Use o próprio recurso nativo do Excel:Selecionar o Range de dados a serem validados, no caso a linha 10 inteira.Dados -> Validação de Dados Em Configurações, no ComboBox Permitir, selecionar a opção Personalizado. Em Configurações, no ComboBox Fórmula, usar a seguinte Fórmula =CONT.SE($10:$10;A10)=1 Depois, personalize as mensagens de erro na guia Alerta de erro.Este exemplo serve para o Excel 2007. Ver referência de validação de dados para as demais versões.Não deu certo... ele não distinguiu dados iguais.Eu até prefiro que seja por uma função do próprio excel, porque talvez a pessoa que vai usar, não tenha domínio de como habilitar o macro.é, o codigo original acho q so testava a coluna 1 tb e agora e ficou testando so a linha 1.mas você quer q, quando ele digita, ele testa todas as linhas da planilha ou so a linha em q ele esta digitando.Sim, eu gostaria que verificasse toda a planilha, porém só entre linhas.Por ex: digitei "eu" na linha 1.. na linha 1 não poderia ter "eu" denovomas em outras linhas pode, só não posso repetir exatamente a mesma duas ou mais vezes na linha. Editado Junho 7, 2010 por TSinésio Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Junho 8, 2010 Denunciar Share Postado Junho 8, 2010 no comeco da sub, logo depois das declaracoes das variaveis, insira o codigo:Dim t As Integert = Target.Row[/code]e então, sempre onde aparecer Cells(1, [alguma coisa]) troque esse primero 1 por t e veja se não funciona. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 TSinésio Postado Junho 8, 2010 Autor Denunciar Share Postado Junho 8, 2010 Engraçado,eu fiz pelá validação de dados e deu certinho, só que em colunas, nas linhas não deu!para colunas fiz assim:Caixa de Validação de Dados -> Personalizado e em Fórmula digitei a seguinte fórmula =CONT.SE(B$3:B$11; B3) = 1Deu certinho!Para as linhas fiz assim:=CONT.SE(A$1:N$1; A1) = 1E não deu... :( alguém consegue me explicar?no comeco da sub, logo depois das declaracoes das variaveis, insira o codigo:Dim t As Integer t = Target.Rowe então, sempre onde aparecer Cells(1, [alguma coisa]) troque esse primero 1 por t e veja se não funciona.Funcionou... mas ele só pega uma celula após. Ex: se digitei o erro na célula A2, ele só verifica na B2, da C pra frente não verifica mais... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 TSinésio Postado Junho 8, 2010 Autor Denunciar Share Postado Junho 8, 2010 Galera,consegui resolver o problema... muito muito obrigado a todos!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JoséA Postado Junho 9, 2010 Denunciar Share Postado Junho 9, 2010 Galera,consegui resolver o problema... muito muito obrigado a todos!!!Deverias informar como resolvestes... Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
TSinésio
Pessoal,
tem alguma função no excel que eu consigo limitar informações repetidas na mesma linha?
Ex: na linha 20 eu escrevi "Thiago", essa palavra não poderia aparecer novamente.
eu consegui esse macro que faz o que eu quero, só que ele está limitando as informações somente nas colunas, não nas linhas!
Como faço para ele limitar nas linhas e não nas colunas??
------------
--------------------
Agradeço a atenção
Editado por kuroiAdicionar tag CODE
Link para o comentário
Compartilhar em outros sites
9 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.