Notifications
Clear all

Comparar e representar

13 Posts
4 Usuários
0 Reactions
2,614 Visualizações
(@dimorais)
Posts: 431
Honorable Member
Topic starter
 

Boa noite
Macro para comparar e representar com um "x" os resultados encontrados.
Grato

 
Postado : 19/08/2013 3:42 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Experimente:

Sub conta()
Dim s As Integer, t As Integer, g As Integer
Dim aTp As Variant
ActiveSheet.Range("N5:Q24").ClearContents
g = 0
For t = 5 To 24
    For s = 4 To 6
     aTp = Application.Match(Cells(t, s), ActiveSheet.Range(Cells(t, 8), Cells(t, 12)), 0)
        If Not IsError(aTp) Then
            g = g + 1
        End If
    Next
    Select Case g
        Case 0
        Cells(t, 14) = "x"
        Case 1
        Cells(t, 15) = "x"
        Case 2
        Cells(t, 16) = "x"
        Case 3
        Cells(t, 17) = "x"
    End Select
    g = 0
Next
End Sub
 
Postado : 20/08/2013 5:53 am
(@dimorais)
Posts: 431
Honorable Member
Topic starter
 

Valeu, Reinaldo. :lol:
Grato

 
Postado : 20/08/2013 6:17 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

dimorais,

Bom Dia!

Veja se assim lhe atende.

 
Postado : 20/08/2013 6:21 am
(@dimorais)
Posts: 431
Honorable Member
Topic starter
 

Boa tarde
Quero agradecer ao Reinaldo e Wagner Morel a contribuição ao tópico e informar que cometi um erro/troca nas informações sobre o que a macro deve fazer, por esse motivo vou abrir um segundo tópico desta vez com as informações corretas sem erros. Mais uma vez minhas desculpas aos mesmos. :D

 
Postado : 20/08/2013 9:02 am
(@dimorais)
Posts: 431
Honorable Member
Topic starter
 

Boa tarde
Como já havia dito no tópico anterior, cometi um erro ao passar as informações sobre o que a macro deve fazer. :oops: Minhas desculpas ao Reinaldo e ao Wagner Morel que gentilmente apresentaram solução do 1º post.:D Nessa planilha as informações corretas.
Grato

 
Postado : 20/08/2013 9:09 am
(@depoisteconto)
Posts: 183
Reputable Member
 

Não atendi a parte dos parametros M2:R2.

At

 
Postado : 20/08/2013 12:30 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Qual o link do primeiro post?

Por favor não abra topicos para falar de um mesmo assunto, se esse não for o caso, desconsidere essa mensagem!!

Att

 
Postado : 20/08/2013 4:14 pm
(@dimorais)
Posts: 431
Honorable Member
Topic starter
 

Boa noite

Alexandrevba, o 1º link é "Comparar e representar" e foi dado como resolvido. O problema é que cometi erros ao informar o que deveria fazer a macro, os parâmetros ou seja tudo errado. Esse é o motivo de ter postado de novo, já que o 1º tópico infelizmente nada tem a ver com o 2º, e o titulo "Comparar e representar 2" foi tão somente para chamar a atenção do Reinaldo e Wagner Morel, que contribuíram com a 1ª solução.

 
Postado : 20/08/2013 5:31 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Dimorais, juntei os dois tópicos por se tratarem do mesmo assunto conforme citou o Alexandre.
Apesar da resolução dada pelos colegas Reinaldo e Wagner em seu primeiro anexo que atingiu o objetivo proposto, na segunda questão, onde diz ter cometido um equivoco, ainda assim estamos falando da mesma questão, só alterando os parametros, então continuando no mesmo tópico fica mais fácil para aqueles que verem ajudar, pois já temos o pontapé inicial resolvido.

Quanto o seu 2° anexo, não entendi os resultados que colocou uma vez que o num 13 repete 4x o 45 2x, ....

Teria como dar um pouco mais de detalhes ?

[]s

 
Postado : 20/08/2013 6:16 pm
(@dimorais)
Posts: 431
Honorable Member
Topic starter
 

Boa noite
Os valores da 1ª linha são comparados com todos os valores de I5:K24 e onde houver valores iguais é assinalado nas colunas em M6:R6. Se não for encontrado nenhuma concordância então é assinalado um "x" na coluna M, se encontrado uma concordância, coluna N e assim sucessivamente. Observe que no exemplo o 45 aparece duas vezes, mas é apenas o mesmo numero replicado, então o "x" assumido é na coluna N. O 13 da 2ª linha também mostra um caso parecido, são vários 13 dentro do intervalo I5:K24, mas assume também um "x" na coluna N e assim sucessivamente.

 
Postado : 20/08/2013 6:32 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Veja se atende:

Sub conta2()
Dim s As Integer, t As Integer, g As Integer
Dim aTp As Variant
ActiveSheet.Range("M5:R24").ClearContents
g = 0
For t = 5 To 24
    For s = 0 To 5
        aTp = Application.WorksheetFunction.CountIf(ActiveSheet.Range(Cells(5, 9), Cells(24, 11)), Cells(t, s + 3))
        If aTp > 0 Then
            g = g + 1
        End If
    Next
    
    Select Case g
        Case 0
            Cells(t, 13) = "x"
        Case 1
            Cells(t, 14) = "x"
        Case 2
            Cells(t, 15) = "x"
        Case 3
            Cells(t, 16) = "x"
        Case 4
            Cells(t, 17) = "x"
        Case 5
            Cells(t, 18) = "x"
    End Select
        g = 0
    Next
    End Sub
 
Postado : 21/08/2013 6:52 am
(@dimorais)
Posts: 431
Honorable Member
Topic starter
 

Bom dia
Reinaldo, mais uma vez meus agradecimentos pela pronta solução. :D

 
Postado : 21/08/2013 7:08 am