Notifications
Clear all

Macro para contar valores errados

14 Posts
4 Usuários
0 Reactions
1,881 Visualizações
fcarlosc
(@fcarlosc)
Posts: 453
Honorable Member
Topic starter
 

Boa-noite pessoal
Gostaria de uma força para adaptar um contador a uma pesquisa por valores errados. Quando achar um valor errado somar + 1 e no final mostrar a quantidade de valores errados.

Att,
Francisco

 
Postado : 06/03/2016 5:36 pm
(@robo8268)
Posts: 73
Trusted Member
 

O que seria esse "valor errado".. enfim, eu faria assim...

Sub contarErrados()
Dim contagem As integer
For i=1 To Cells(Rows.Count,1).End(xlUp).Row
   If(Cells(1,i) = "Valor Errado") Then
      contagem = contagem + 1
    End If
Next i
End Sub
 
Postado : 07/03/2016 7:20 am
fcarlosc
(@fcarlosc)
Posts: 453
Honorable Member
Topic starter
 

robo8268...dá uma olha no anexo que você vai entender melhor.
Eu digitei alguns nomes errados para a macro corrigir, até aí blz...só que eu gostaria que além de corrigir contasse quantos ela corrigiu.

att,

Francisco

 
Postado : 07/03/2016 10:47 am
(@robo8268)
Posts: 73
Trusted Member
 

Francisco, eu não estou conseguindo baixar o anexo porque aqui no meu trabalho é bloqueado, mas eu posso ver quando eu chegar em casa.

Acredito que isso resolveria o seu problema:

Sub contarErrados()
Dim contagem As integer
For i=1 To Cells(Rows.Count,1).End(xlUp).Row
     Select Case Cells(1,i)
          Case  "Joao"
                Cells(1,i) = João
                contagem = contagem + 1
          Case Jose
               Cells(1,i) = José
               contagem = contagem + 1
     End Select
Next i
End Sub

Aí basta adaptar para todas as possibilidades de erro...

 
Postado : 07/03/2016 10:59 am
fcarlosc
(@fcarlosc)
Posts: 453
Honorable Member
Topic starter
 

Olá robo8268, não consegui adaptar na minha macro.

 
Postado : 08/03/2016 3:48 pm
fcarlosc
(@fcarlosc)
Posts: 453
Honorable Member
Topic starter
 

Boa noite galera...o robo8268 ficou de responder meu "post" e nada ainda. Se alguém puder me ajudar com essa macro, agradeço.
Não foi por falta de tentativa, não consegui adaptar a macro que tenho, que também foi por este fórum, o mais próximo que consegui, foi que a macro fizesse a contagem até 15 erros (no meu teste)...só que tinha mais de 15 erros. Tentei outras possibilidades e nada.

qualquer ajudar será bem vinda...e vou tentar explorar ao máximo.

att,

Francisco

 
Postado : 09/03/2016 3:05 pm
Trindade
(@trindade)
Posts: 278
Reputable Member
 

Boa tarde, fcarlosc.

Teste esse código, esta utilizando como busca a Coluna A.

Sub FindReplace()

Dim i As String
Dim k As String

i = "SIVLA"
k = "SILVA"

Columns("A").Replace what:=i, replacement:=k, lookat:=xlPart, MatchCase:=False

i = "CSOTA"
k = "COSTA"

Columns("A").Replace what:=i, replacement:=k, lookat:=xlPart, MatchCase:=False

i = "JAOA"
k = "JOAO"

Columns("A").Replace what:=i, replacement:=k, lookat:=xlPart, MatchCase:=False

Call contarErrados

End Sub
    
Sub contarErrados()

Dim Contagem As Long
Dim i As Long
Dim UltLin As Long

    UltLin = Cells(Rows.Count, 1).End(xlUp).Row

    For i = 1 To UltLin
        If Cells(i, 1) <> "" Then
            Cells(i, 1).Select
            If (Cells(i, 1) <> "SILVA") Or (Cells(i, 1) <> "COSTA") Or (Cells(i, 1) <> "JOAO") Then
                Cells(i, 1).Select
                Contagem = Contagem + 1
            End If
        End If
    Next i
    
    MsgBox Contagem & " erros"
    
End Sub

Se a resposta foi útil! Clique na mãozinha ao lado do botão Citar.
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde.

 
Postado : 09/03/2016 3:52 pm
fcarlosc
(@fcarlosc)
Posts: 453
Honorable Member
Topic starter
 

Ok...vou ver o resultado...!

 
Postado : 09/03/2016 4:20 pm
fcarlosc
(@fcarlosc)
Posts: 453
Honorable Member
Topic starter
 

karaka...funfou...vou ampliar o código...!!!

Se não aparecer erros. vou posta como "RESOLVIDO"

att,

Francisco

 
Postado : 09/03/2016 4:27 pm
fcarlosc
(@fcarlosc)
Posts: 453
Honorable Member
Topic starter
 

Olá amigo...acho que ainda tem erro...quando eu rodo a macro, ela conta os "18" erros informados, blz....só que quando eu diminuo as linhas com erros, ela continua contando "18" erros.

att,

Francisco

 
Postado : 09/03/2016 5:52 pm
fcarlosc
(@fcarlosc)
Posts: 453
Honorable Member
Topic starter
 

Olá amigo...acho que ainda tem erro...quando eu rodo a macro, ela conta os "18" erros informados, blz....só que quando eu diminuo as linhas com erros, ela continua contando "18" erros.

att,

Francisco

 
Postado : 09/03/2016 5:52 pm
Trindade
(@trindade)
Posts: 278
Reputable Member
 

Boa noite, fcarlosc.

Tenta trocar a chamada Call contarErrados

Sub FindReplace()

Dim i As String
Dim k As String

i = "SIVLA"
k = "SILVA"

Columns("A").Replace what:=i, replacement:=k, lookat:=xlPart, MatchCase:=False

i = "CSOTA"
k = "COSTA"

Columns("A").Replace what:=i, replacement:=k, lookat:=xlPart, MatchCase:=False

i = "JAOA"
k = "JOAO"

Columns("A").Replace what:=i, replacement:=k, lookat:=xlPart, MatchCase:=False

Call contarErrados

End Sub

Para a posição abaixo:

Sub FindReplace()

Dim i As String
Dim k As String

Call contarErrados

i = "SIVLA"
k = "SILVA"

Columns("A").Replace what:=i, replacement:=k, lookat:=xlPart, MatchCase:=False

i = "CSOTA"
k = "COSTA"

Columns("A").Replace what:=i, replacement:=k, lookat:=xlPart, MatchCase:=False

i = "JAOA"
k = "JOAO"

Columns("A").Replace what:=i, replacement:=k, lookat:=xlPart, MatchCase:=False

End Sub

Se a resposta foi útil! Clique na mãozinha ao lado do botão Citar.
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde.

 
Postado : 09/03/2016 9:17 pm
Trindade
(@trindade)
Posts: 278
Reputable Member
 

Segue ...

Se a resposta foi útil! Clique na mãozinha ao lado do botão Citar.
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde.

 
Postado : 09/03/2016 9:29 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

A solução do Trindade é válida, mas conforme eu disse no seu tópico anterior "Como substituir palavras em uma determinada coluna" viewtopic.php?f=10&t=19318, o ideal seria ter as duas listas em colunas, tipo das palavras erradas e as das palavras a substituir, assim não precisara de uma rotina com várias linhas definindo a substituição, de uma olhada neste modelo, fiz da forma que estou dizendo acima, e utilizando um loop substituimos as palavras e colocamos o total de cada uma na coluna correspondente.

A rotina utilizada é a abaixo :

Sub ReplaceCount()
Dim Total As Integer
Dim i As String
Dim k As String

Dim rgErrado As Range

Set rgErrado = Range("H2:H4")

    For Each x In rgErrado
        i = x
        k = x.Offset(, 1)
        
        Total = Application.CountIf(ActiveSheet.Columns("A"), "*" & i & "*")
        
        Columns("A").Replace what:=i, replacement:=k, lookat:=xlPart, MatchCase:=False
        x.Offset(, 2) = Total
    
    Next

End Sub

Localizar - Substituir e Contar

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 09/03/2016 10:12 pm