Colorir com condiçõ...
 
Notifications
Clear all

Colorir com condições.

25 Posts
3 Usuários
0 Reactions
3,843 Visualizações
(@bracinho)
Posts: 0
New Member
Topic starter
 

Pessoal, bom dia!

Já pesquisei sobre esse assunto aqui no fórum. Encontrei vários bons exemplos, mas, infelizmente, não cheguei ao objetivo pleno.

Eu tenho uma listview que apresenta o orçamento mensal de despesas. Nele consta os centros de custo na vertical e os meses na horizontal.

Ex:
jan fev mar abr
Diversão Orçado 400 420 410 380
Diversão Realizado 250 540 600 120

O que eu quero é que, se o valor do realizado for maior que o valor do orçado, o mesmo fica em vermelho.

Os centros de custos ficam sempre na mesma ordem, ou seja, a linha referente a DIVERSÃO ORÇADO, por exemplo, sempre será a linha 1 e, consequentemente, a referente a DIVERSÃO REALIZADO será a linha da DIVERSÃO ORÇADO + 1, ou seja, linha 2.

É algo complexo, mas acredito que os vocês tenham algum palpite.

 
Postado : 11/09/2015 6:30 am
(@bracinho)
Posts: 0
New Member
Topic starter
 

Exatamente Mauro.

Realmente não descrimino se a linha refere-se ao ORÇADO ou REALIZADO, mas, como observado por você, se a linha 2 é RENDA, a 3 será RENDA REALIZADA, mas eu preferi não nomeá-la, para evitar uma poluição visual.

Mas para frisar: Se uma linha apresentar o nome do centro de custo, seja ele qual for, essa fará referencia ao valor ORÇADO para aquele centro de custo e a linha abaixo será o REALIZADO para aquele mesmo centro de custo.

 
Postado : 17/09/2015 4:35 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Exatamente Mauro.
Realmente não descrimino se a linha refere-se ao ORÇADO ou REALIZADO, mas, como observado por você, se a linha 2 é RENDA, a 3 será RENDA REALIZADA, mas eu preferi não nomeá-la, para evitar uma poluição visual.

Mas para frisar: Se uma linha apresentar o nome do centro de custo, seja ele qual for, essa fará referencia ao valor ORÇADO para aquele centro de custo e a linha abaixo será o REALIZADO para aquele mesmo centro de custo.

Lorenzon, vamos deixar de lado os termos contábeis e nos ater somente o que precisa, mas de uma forma que fique mais claro, ou seja :

Baseando na imagem que colocou, você quer que se compare as linhas :
3 com a 2(RENDA) e se 3 for maior ficar com a cor Verde e se menor cor vermelha..

Mas quanto as demais linha, seriam comparar as linhas :
5, 7, 9, 11, 13 e 15 com a linha 2(RENDA) ? desconsiderando as linhas : 4, 6, 8, 10, 12 e 14 ?

 
Postado : 17/09/2015 7:21 am
(@bracinho)
Posts: 0
New Member
Topic starter
 

Mauro,

Volto a dizer que o seu exemplo caiu como uma luva! Ele funciona perfeitamente para os demais centro de custo.

Sendo assim, preciso inserir apenas a comparação:

3 com a 2(RENDA) e se 3 for maior ficar com a cor Verde e se menor cor vermelha..

E manter as demais.

 
Postado : 17/09/2015 11:34 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Lonrenzon, lidamos com tantas coisas durante o dia, tentando intercalar uma possivel ajuda com as atribuições do serviço diário, que as vezes, dependendo da solicitação fica um pouco inviável ficar analisando e lendo imensos tópicos que mais parecem uma carta, e montamos conforme vamos entendendo, por isso a necessidade de uma duvida estar sempre bem detalhada e o mais direta possível.

Era somente isto que eu queria saber:

Mauro,
Sendo assim, preciso inserir apenas a comparação:
3 com a 2(RENDA) e se 3 for maior ficar com a cor Verde e se menor cor vermelha..
E manter as demais.

No modelo que enviei, troque a rotina pela a abaixo e veja se agora acertamos, lembrando mais uma vez, deixei a mesma na "forma bruta" para um melhor entendimento, e se procurar estudar melhor verá que da para reduzirmos o tamanho criando algumas variaveis e constantes e substituindo as expressões repetitivas, só para exemplificar :
Poderiamos trocar :
"Range("C" & pos)" por "Cells(pos, sCol)" definindo a Variavel "sCol" para as colunas, e uma vez que temos 14 colunas, incrementamos esta Variável deixando em praticamente só uma linha.

Private Sub UserForm_Initialize()

Dim startrow As Integer
Dim endrow As Integer
Dim pos As Integer
Dim lv_item As Integer
Dim counting As Integer
Dim sCount

sCount = 0
startrow = 2
endrow = xlLastRow("Data")

pos = 2
lv_item = 1

With ListView1
    'gives me headers at the top
    .View = lvwReport
    .Gridlines = True
         
    'defining the columnheaders
    With .ColumnHeaders
        .Clear
        .Add , , "ID", 20
        .Add , , "Centro de Custo", 95
        .Add , , "Jan", 45
        .Add , , "Fev", 45
        .Add , , "Mar", 45
        .Add , , "Abr", 45
        .Add , , "Mai", 45
        .Add , , "Jun", 45
        .Add , , "Jul", 45
        .Add , , "Ago", 45
        .Add , , "Set", 45
        .Add , , "Out", 45
        .Add , , "Nov", 45
        .Add , , "Dez", 45
        .Add , , "Média", 45
        .Add , , "Total", 60
    End With
        
    .HideColumnHeaders = False
    .Appearance = cc3D
    .FullRowSelect = True
       
    For counting = startrow To endrow
        .ListItems.Add , , Worksheets("Data").Range("A" & pos)
        .ListItems(lv_item).ListSubItems.Add , , Worksheets("Data").Range("B" & pos)
                
        .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("Data").Range("C" & pos).Value, "0.00")
        .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("Data").Range("D" & pos).Value, "0.00")
        .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("Data").Range("E" & pos).Value, "0.00")
        .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("Data").Range("F" & pos).Value, "0.00")
        .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("Data").Range("G" & pos).Value, "0.00")
        .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("Data").Range("H" & pos).Value, "0.00")
        .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("Data").Range("I" & pos).Value, "0.00")
        .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("Data").Range("J" & pos).Value, "0.00")
        .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("Data").Range("K" & pos).Value, "0.00")
        .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("Data").Range("L" & pos).Value, "0.00")
        .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("Data").Range("M" & pos).Value, "0.00")
        .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("Data").Range("N" & pos).Value, "0.00")
        .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("Data").Range("O" & pos).Value, "0.00")
        .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("Data").Range("P" & pos).Value, "0.00")
                
        sCount = sCount + 1
                
            'Formata a cor
            If sCount = 2 And pos = 3 Then
            
                If Worksheets("Data").Range("C" & pos - 1) > Worksheets("Data").Range("C" & pos) Then .ListItems(lv_item).ListSubItems.Item(2).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(2).ForeColor = rgbGreen
                If Worksheets("Data").Range("D" & pos - 1) > Worksheets("Data").Range("D" & pos) Then .ListItems(lv_item).ListSubItems.Item(3).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(3).ForeColor = rgbGreen
                If Worksheets("Data").Range("E" & pos - 1) > Worksheets("Data").Range("E" & pos) Then .ListItems(lv_item).ListSubItems.Item(4).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(4).ForeColor = rgbGreen
                If Worksheets("Data").Range("F" & pos - 1) > Worksheets("Data").Range("F" & pos) Then .ListItems(lv_item).ListSubItems.Item(5).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(5).ForeColor = rgbGreen
                If Worksheets("Data").Range("G" & pos - 1) > Worksheets("Data").Range("G" & pos) Then .ListItems(lv_item).ListSubItems.Item(6).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(6).ForeColor = rgbGreen
                If Worksheets("Data").Range("H" & pos - 1) > Worksheets("Data").Range("H" & pos) Then .ListItems(lv_item).ListSubItems.Item(7).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(7).ForeColor = rgbGreen
                If Worksheets("Data").Range("I" & pos - 1) > Worksheets("Data").Range("I" & pos) Then .ListItems(lv_item).ListSubItems.Item(8).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(8).ForeColor = rgbGreen
                If Worksheets("Data").Range("J" & pos - 1) > Worksheets("Data").Range("J" & pos) Then .ListItems(lv_item).ListSubItems.Item(9).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(9).ForeColor = rgbGreen
                If Worksheets("Data").Range("K" & pos - 1) > Worksheets("Data").Range("K" & pos) Then .ListItems(lv_item).ListSubItems.Item(10).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(10).ForeColor = rgbGreen
                If Worksheets("Data").Range("L" & pos - 1) > Worksheets("Data").Range("L" & pos) Then .ListItems(lv_item).ListSubItems.Item(11).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(11).ForeColor = rgbGreen
                If Worksheets("Data").Range("M" & pos - 1) > Worksheets("Data").Range("M" & pos) Then .ListItems(lv_item).ListSubItems.Item(12).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(12).ForeColor = rgbGreen
                If Worksheets("Data").Range("N" & pos - 1) > Worksheets("Data").Range("N" & pos) Then .ListItems(lv_item).ListSubItems.Item(13).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(13).ForeColor = rgbGreen
                If Worksheets("Data").Range("O" & pos - 1) > Worksheets("Data").Range("O" & pos) Then .ListItems(lv_item).ListSubItems.Item(14).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(14).ForeColor = rgbGreen
                If Worksheets("Data").Range("P" & pos - 1) > Worksheets("Data").Range("P" & pos) Then .ListItems(lv_item).ListSubItems.Item(15).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(15).ForeColor = rgbGreen
                
                sCount = 0
                    
            ElseIf sCount = 2 And pos > 3 Then

                If Worksheets("Data").Range("C" & pos) > Worksheets("Data").Range("C" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(2).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(2).ForeColor = rgbGreen
                If Worksheets("Data").Range("D" & pos) > Worksheets("Data").Range("D" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(3).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(2).ForeColor = rgbGreen
                If Worksheets("Data").Range("E" & pos) > Worksheets("Data").Range("E" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(4).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(2).ForeColor = rgbGreen
                If Worksheets("Data").Range("F" & pos) > Worksheets("Data").Range("F" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(5).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(2).ForeColor = rgbGreen
                If Worksheets("Data").Range("G" & pos) > Worksheets("Data").Range("G" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(6).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(2).ForeColor = rgbGreen
                If Worksheets("Data").Range("H" & pos) > Worksheets("Data").Range("H" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(7).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(2).ForeColor = rgbGreen
                If Worksheets("Data").Range("I" & pos) > Worksheets("Data").Range("I" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(8).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(2).ForeColor = rgbGreen
                If Worksheets("Data").Range("J" & pos) > Worksheets("Data").Range("J" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(9).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(2).ForeColor = rgbGreen
                If Worksheets("Data").Range("K" & pos) > Worksheets("Data").Range("K" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(10).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(2).ForeColor = rgbGreen
                If Worksheets("Data").Range("L" & pos) > Worksheets("Data").Range("L" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(11).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(2).ForeColor = rgbGreen
                If Worksheets("Data").Range("M" & pos) > Worksheets("Data").Range("M" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(12).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(2).ForeColor = rgbGreen
                If Worksheets("Data").Range("N" & pos) > Worksheets("Data").Range("N" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(13).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(2).ForeColor = rgbGreen
                If Worksheets("Data").Range("O" & pos) > Worksheets("Data").Range("O" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(14).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(2).ForeColor = rgbGreen
                If Worksheets("Data").Range("P" & pos) > Worksheets("Data").Range("P" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(15).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(2).ForeColor = rgbGreen
                
                sCount = 0
                
            End If
                    
            lv_item = lv_item + 1
            pos = pos + 1
        
        Next counting
        
    End With
    
    Call TirarSelectItem
 
End Sub

qualquer coisa retorne.
[]s

 
Postado : 18/09/2015 7:16 am
(@bracinho)
Posts: 0
New Member
Topic starter
 

Mauro, bom dia!

Estamos quase lá!

Porém ainda tenho uma dúvida!

Observa que a coluna referente a Janeiro destacou, erroneamente, todos os subitens de verde.

Fora isso, está tudo perfeito.

Tendo em vista que você possui o projeto em questão, aproveito o ensejo para perguntar:

Tem como eu deixar esse listview listrado? Eu possuo um código perfeito para isso, mas só funciona se o listview não estiver dentro de uma multipage! =/

 
Postado : 19/09/2015 6:18 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Lorenzon, quando fiz ajustei para a nova questão eu fiz a verificação somente em uma coluna para ficar mais facil acompanhar e depois repliquei, e se você analisar a rotina verá que acabei deixando a segunda parte tudo referenciando a mesma coluna, problema de CTRL + C - CTRL + V, ou seja nos IF da segunda parte ajuste as referencias que estão todas como ".ListSubItems.Item(2)" e teste novamente.
[]s

 
Postado : 20/09/2015 8:57 pm
(@bracinho)
Posts: 0
New Member
Topic starter
 

Mauro,

Desculpa-me, mas já tentei de tudo e não consegui resolver o problema.

Só para frisar:

O código está quase perfeito. A excelência virá quando o mesmo só colorir de verde a segunda linha, a qual encontra-se sob a linha referente a renda.

Tem como você adaptar o exemplo?

 
Postado : 21/09/2015 4:59 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Lorenzon, provavelmente alterou no lugar errado,é bem simples :

Veja que após a linha :
If sCount = 2 And pos = 3 Then
as instruções são todas iguais, só alterando o numero destacado em vermelho que estão todos como (2), é só alterar para, 3,4,5,6,7 até 14.
If Worksheets("Data").Range("C" & pos) > Worksheets("Data").Range("C" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(2).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(2).ForeColor = rgbGreen

 
Postado : 21/09/2015 11:39 am
(@bracinho)
Posts: 0
New Member
Topic starter
 

Mauro,

Eu resolvi retirando os else da segunda parte!

Enfim, ficou perfeito!

Valeu cara!

    With lsLista
        'gives me headers at the top
        .View = lvwReport
        .Gridlines = True
             
        'defining the columnheaders
        With .ColumnHeaders
            .Clear
            .Add , , "ID", 20
            .Add , , "Centro de Custo", 95
            .Add , , "Jan", 45
            .Add , , "Fev", 45
            .Add , , "Mar", 45
            .Add , , "Abr", 45
            .Add , , "Mai", 45
            .Add , , "Jun", 45
            .Add , , "Jul", 45
            .Add , , "Ago", 45
            .Add , , "Set", 45
            .Add , , "Out", 45
            .Add , , "Nov", 45
            .Add , , "Dez", 45
            .Add , , "Média", 45
            .Add , , "Total", 60
        End With
           
        .HideColumnHeaders = False
        .Appearance = cc3D
        .FullRowSelect = True
           
        For counting = startrow To endrow
            .ListItems.Add , , Worksheets("orç").Range("A" & pos)
            .ListItems(lv_item).ListSubItems.Add , , Worksheets("orç").Range("B" & pos)
                   
            .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("orç").Range("C" & pos).Value, "0.00")
            .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("orç").Range("D" & pos).Value, "0.00")
            .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("orç").Range("E" & pos).Value, "0.00")
            .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("orç").Range("F" & pos).Value, "0.00")
            .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("orç").Range("G" & pos).Value, "0.00")
            .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("orç").Range("H" & pos).Value, "0.00")
            .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("orç").Range("I" & pos).Value, "0.00")
            .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("orç").Range("J" & pos).Value, "0.00")
            .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("orç").Range("K" & pos).Value, "0.00")
            .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("orç").Range("L" & pos).Value, "0.00")
            .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("orç").Range("M" & pos).Value, "0.00")
            .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("orç").Range("N" & pos).Value, "0.00")
            .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("orç").Range("O" & pos).Value, "0.00")
            .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("orç").Range("P" & pos).Value, "0.00")
                   
            sCount = sCount + 1
                   
                'Formata a cor
                If sCount = 2 And pos = 3 Then
               
                    If Worksheets("orç").Range("C" & pos - 1) > Worksheets("orç").Range("C" & pos) Then .ListItems(lv_item).ListSubItems.Item(2).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(2).ForeColor = rgbGreen
                    If Worksheets("orç").Range("D" & pos - 1) > Worksheets("orç").Range("D" & pos) Then .ListItems(lv_item).ListSubItems.Item(3).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(3).ForeColor = rgbGreen
                    If Worksheets("orç").Range("E" & pos - 1) > Worksheets("orç").Range("E" & pos) Then .ListItems(lv_item).ListSubItems.Item(4).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(4).ForeColor = rgbGreen
                    If Worksheets("orç").Range("F" & pos - 1) > Worksheets("orç").Range("F" & pos) Then .ListItems(lv_item).ListSubItems.Item(5).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(5).ForeColor = rgbGreen
                    If Worksheets("orç").Range("G" & pos - 1) > Worksheets("orç").Range("G" & pos) Then .ListItems(lv_item).ListSubItems.Item(6).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(6).ForeColor = rgbGreen
                    If Worksheets("orç").Range("H" & pos - 1) > Worksheets("orç").Range("H" & pos) Then .ListItems(lv_item).ListSubItems.Item(7).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(7).ForeColor = rgbGreen
                    If Worksheets("orç").Range("I" & pos - 1) > Worksheets("orç").Range("I" & pos) Then .ListItems(lv_item).ListSubItems.Item(8).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(8).ForeColor = rgbGreen
                    If Worksheets("orç").Range("J" & pos - 1) > Worksheets("orç").Range("J" & pos) Then .ListItems(lv_item).ListSubItems.Item(9).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(9).ForeColor = rgbGreen
                    If Worksheets("orç").Range("K" & pos - 1) > Worksheets("orç").Range("K" & pos) Then .ListItems(lv_item).ListSubItems.Item(10).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(10).ForeColor = rgbGreen
                    If Worksheets("orç").Range("L" & pos - 1) > Worksheets("orç").Range("L" & pos) Then .ListItems(lv_item).ListSubItems.Item(11).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(11).ForeColor = rgbGreen
                    If Worksheets("orç").Range("M" & pos - 1) > Worksheets("orç").Range("M" & pos) Then .ListItems(lv_item).ListSubItems.Item(12).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(12).ForeColor = rgbGreen
                    If Worksheets("orç").Range("N" & pos - 1) > Worksheets("orç").Range("N" & pos) Then .ListItems(lv_item).ListSubItems.Item(13).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(13).ForeColor = rgbGreen
                    If Worksheets("orç").Range("O" & pos - 1) > Worksheets("orç").Range("O" & pos) Then .ListItems(lv_item).ListSubItems.Item(14).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(14).ForeColor = rgbGreen
                    If Worksheets("orç").Range("P" & pos - 1) > Worksheets("orç").Range("P" & pos) Then .ListItems(lv_item).ListSubItems.Item(15).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(15).ForeColor = rgbGreen
                   
                    sCount = 0
                       
                ElseIf sCount = 2 And pos > 3 Then

                    If Worksheets("orç").Range("C" & pos) > Worksheets("orç").Range("C" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(2).ForeColor = rgbRed
                    If Worksheets("orç").Range("D" & pos) > Worksheets("orç").Range("D" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(3).ForeColor = rgbRed
                    If Worksheets("orç").Range("E" & pos) > Worksheets("orç").Range("E" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(4).ForeColor = rgbRed
                    If Worksheets("orç").Range("F" & pos) > Worksheets("orç").Range("F" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(5).ForeColor = rgbRed
                    If Worksheets("orç").Range("G" & pos) > Worksheets("orç").Range("G" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(6).ForeColor = rgbRed
                    If Worksheets("orç").Range("H" & pos) > Worksheets("orç").Range("H" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(7).ForeColor = rgbRed
                    If Worksheets("orç").Range("I" & pos) > Worksheets("orç").Range("I" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(8).ForeColor = rgbRed
                    If Worksheets("orç").Range("J" & pos) > Worksheets("orç").Range("J" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(9).ForeColor = rgbRed
                    If Worksheets("orç").Range("K" & pos) > Worksheets("orç").Range("K" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(10).ForeColor = rgbRed
                    If Worksheets("orç").Range("L" & pos) > Worksheets("orç").Range("L" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(11).ForeColor = rgbRed
                    If Worksheets("orç").Range("M" & pos) > Worksheets("orç").Range("M" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(12).ForeColor = rgbRed
                    If Worksheets("orç").Range("N" & pos) > Worksheets("orç").Range("N" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(13).ForeColor = rgbRed
                    If Worksheets("orç").Range("O" & pos) > Worksheets("orç").Range("O" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(14).ForeColor = rgbRed
                    If Worksheets("orç").Range("P" & pos) > Worksheets("orç").Range("P" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(15).ForeColor = rgbRed
                   
                    sCount = 0
                   
                End If
                       
                lv_item = lv_item + 1
                pos = pos + 1
           
            Next counting
 
Postado : 21/09/2015 1:48 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Lorenzon ótimo que tenha chegado a uma solução, mas olhando a alteração que fez, excetuando as duas primeiras linhas, as demais ficou somente com a cor vermelha se o valor for maior, e a principuo era para ter duas cores, apesar de ja ter resolvido, veja a rotina abaixo ajustada onde temoscondição diferente para as duas primeiras linhas e outras para as demais, que pelo o que eu havia entendido seria isto o que queria, mas se não for fica a rotina para outros que procurarem por situação diferente.

Private Sub UserForm_Initialize()

Dim startrow As Integer
Dim endrow As Integer
Dim pos As Integer
Dim lv_item As Integer
Dim counting As Integer
Dim sCount

sCount = 0
startrow = 2
endrow = xlLastRow("orç")

pos = 2
lv_item = 1

With ListView1
'gives me headers at the top
    .View = lvwReport
    .Gridlines = True
         
    'defining the columnheaders
    With .ColumnHeaders
        .Clear
        .Add , , "ID", 20
        .Add , , "Centro de Custo", 95
        .Add , , "Jan", 45
        .Add , , "Fev", 45
        .Add , , "Mar", 45
        .Add , , "Abr", 45
        .Add , , "Mai", 45
        .Add , , "Jun", 45
        .Add , , "Jul", 45
        .Add , , "Ago", 45
        .Add , , "Set", 45
        .Add , , "Out", 45
        .Add , , "Nov", 45
        .Add , , "Dez", 45
        .Add , , "Média", 45
        .Add , , "Total", 60
    End With
        
    .HideColumnHeaders = False
    .Appearance = cc3D
    .FullRowSelect = True
       
    For counting = startrow To endrow
        .ListItems.Add , , Worksheets("orç").Range("A" & pos)
        .ListItems(lv_item).ListSubItems.Add , , Worksheets("orç").Range("B" & pos)
                
        .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("orç").Range("C" & pos).Value, "0.00")
        .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("orç").Range("D" & pos).Value, "0.00")
        .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("orç").Range("E" & pos).Value, "0.00")
        .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("orç").Range("F" & pos).Value, "0.00")
        .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("orç").Range("G" & pos).Value, "0.00")
        .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("orç").Range("H" & pos).Value, "0.00")
        .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("orç").Range("I" & pos).Value, "0.00")
        .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("orç").Range("J" & pos).Value, "0.00")
        .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("orç").Range("K" & pos).Value, "0.00")
        .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("orç").Range("L" & pos).Value, "0.00")
        .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("orç").Range("M" & pos).Value, "0.00")
        .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("orç").Range("N" & pos).Value, "0.00")
        .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("orç").Range("O" & pos).Value, "0.00")
        .ListItems(lv_item).ListSubItems.Add , , Format(Worksheets("orç").Range("P" & pos).Value, "0.00")
                
        sCount = sCount + 1
                
            'Formata a cor
            If sCount = 2 And pos = 3 Then
            
                If Worksheets("orç").Range("C" & pos - 1) > Worksheets("orç").Range("C" & pos) Then .ListItems(lv_item).ListSubItems.Item(2).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(2).ForeColor = rgbGreen
                If Worksheets("orç").Range("D" & pos - 1) > Worksheets("orç").Range("D" & pos) Then .ListItems(lv_item).ListSubItems.Item(3).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(3).ForeColor = rgbGreen
                If Worksheets("orç").Range("E" & pos - 1) > Worksheets("orç").Range("E" & pos) Then .ListItems(lv_item).ListSubItems.Item(4).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(4).ForeColor = rgbGreen
                If Worksheets("orç").Range("F" & pos - 1) > Worksheets("orç").Range("F" & pos) Then .ListItems(lv_item).ListSubItems.Item(5).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(5).ForeColor = rgbGreen
                If Worksheets("orç").Range("G" & pos - 1) > Worksheets("orç").Range("G" & pos) Then .ListItems(lv_item).ListSubItems.Item(6).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(6).ForeColor = rgbGreen
                If Worksheets("orç").Range("H" & pos - 1) > Worksheets("orç").Range("H" & pos) Then .ListItems(lv_item).ListSubItems.Item(7).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(7).ForeColor = rgbGreen
                If Worksheets("orç").Range("I" & pos - 1) > Worksheets("orç").Range("I" & pos) Then .ListItems(lv_item).ListSubItems.Item(8).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(8).ForeColor = rgbGreen
                If Worksheets("orç").Range("J" & pos - 1) > Worksheets("orç").Range("J" & pos) Then .ListItems(lv_item).ListSubItems.Item(9).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(9).ForeColor = rgbGreen
                If Worksheets("orç").Range("K" & pos - 1) > Worksheets("orç").Range("K" & pos) Then .ListItems(lv_item).ListSubItems.Item(10).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(10).ForeColor = rgbGreen
                If Worksheets("orç").Range("L" & pos - 1) > Worksheets("orç").Range("L" & pos) Then .ListItems(lv_item).ListSubItems.Item(11).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(11).ForeColor = rgbGreen
                If Worksheets("orç").Range("M" & pos - 1) > Worksheets("orç").Range("M" & pos) Then .ListItems(lv_item).ListSubItems.Item(12).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(12).ForeColor = rgbGreen
                If Worksheets("orç").Range("N" & pos - 1) > Worksheets("orç").Range("N" & pos) Then .ListItems(lv_item).ListSubItems.Item(13).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(13).ForeColor = rgbGreen
                If Worksheets("orç").Range("O" & pos - 1) > Worksheets("orç").Range("O" & pos) Then .ListItems(lv_item).ListSubItems.Item(14).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(14).ForeColor = rgbGreen
                If Worksheets("orç").Range("P" & pos - 1) > Worksheets("orç").Range("P" & pos) Then .ListItems(lv_item).ListSubItems.Item(15).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(15).ForeColor = rgbGreen
                
                sCount = 0
                    
            ElseIf sCount = 2 And pos > 3 Then

                If Worksheets("orç").Range("C" & pos) > Worksheets("orç").Range("C" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(2).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(2).ForeColor = rgbBlue
                If Worksheets("orç").Range("D" & pos) > Worksheets("orç").Range("D" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(3).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(3).ForeColor = rgbBlue
                If Worksheets("orç").Range("E" & pos) > Worksheets("orç").Range("E" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(4).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(4).ForeColor = rgbBlue
                If Worksheets("orç").Range("F" & pos) > Worksheets("orç").Range("F" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(5).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(5).ForeColor = rgbBlue
                If Worksheets("orç").Range("G" & pos) > Worksheets("orç").Range("G" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(6).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(6).ForeColor = rgbBlue
                If Worksheets("orç").Range("H" & pos) > Worksheets("orç").Range("H" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(7).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(7).ForeColor = rgbBlue
                If Worksheets("orç").Range("I" & pos) > Worksheets("orç").Range("I" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(8).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(8).ForeColor = rgbBlue
                If Worksheets("orç").Range("J" & pos) > Worksheets("orç").Range("J" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(9).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(9).ForeColor = rgbBlue
                If Worksheets("orç").Range("K" & pos) > Worksheets("orç").Range("K" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(10).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(10).ForeColor = rgbBlue
                If Worksheets("orç").Range("L" & pos) > Worksheets("orç").Range("L" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(11).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(11).ForeColor = rgbBlue
                If Worksheets("orç").Range("M" & pos) > Worksheets("orç").Range("M" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(12).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(12).ForeColor = rgbBlue
                If Worksheets("orç").Range("N" & pos) > Worksheets("orç").Range("N" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(13).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(13).ForeColor = rgbBlue
                If Worksheets("orç").Range("O" & pos) > Worksheets("orç").Range("O" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(14).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(14).ForeColor = rgbBlue
                If Worksheets("orç").Range("P" & pos) > Worksheets("orç").Range("P" & pos - 1) Then .ListItems(lv_item).ListSubItems.Item(15).ForeColor = rgbRed Else .ListItems(lv_item).ListSubItems.Item(15).ForeColor = rgbBlue
                
                sCount = 0
                
            End If
                    
            lv_item = lv_item + 1
            pos = pos + 1
           
            Next counting
       
    End With

    Call TirarSelectItem

End Sub

abraços

 
Postado : 21/09/2015 5:47 pm
Página 2 / 2