Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Colorir Texto de Listview baseada em condição

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
ioncila
Colaborador
Colaborador
Mensagens: 35
Registrado em: Qui Dez 03, 2009 2:15 pm

Colorir Texto de Listview baseada em condição

Mensagem por ioncila »

Olá
Fiz uma adaptação do modelo de cadastro de produtos (autoria Beckman) que encontrei aqui no forum.
Mas estou a ter dificuldades em fazer o seguinte:
Se numa determinada coluna ("L", por exemplo) uma célula tiver o texto "Activo", o texto de toda a linha do Listview tem que ficar vermelha.
Já estive a pesquisar aqui no fórum e encontrei uma listview que faz isso, mas não consigo compatibilizar o código com o deste modelo.
Podem dar uma ajuda?
Obrigado
Ioncila
Deixo aqui a minha adaptação.
Anexos
testforlinered.7z
Modelo de cadastro
(189.98 KiB) Baixado 554 vezes


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1173
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Governador Valadares - MG
Contato:

Re: Colorir Texto de Listview baseada em condição

Mensagem por Mikel Silveira Fraga »

ioncila, boa tarde.

A pouco tempo tive a necessidade de criar uma situação parecida e consegui desenvolver, através de algumas pesquisas, um código para isso.

Dei uma adaptada para a sua situação. Veja se vai atender:

Código: Selecionar todos

Sub CoresLinhasLista()

    Dim i, j As Integer
    
    For i = 1 To Me.lsLista.ListItems.Count
    
        With Me.lsLista
        
            If .ListItems(i).ListSubItems(11).Text = "Activo" Then
        
                For j = 1 To .ColumnHeaders.Count - 1
                    .ListItems(i).ListSubItems(j).ForeColor = vbBlue
                Next
            
            ElseIf .ListItems(i).ListSubItems(11).Text = "Suspenso" Then
                
                For j = 1 To .ColumnHeaders.Count - 1
                    .ListItems(i).ListSubItems(j).ForeColor = vbRed
                Next
            
            ElseIf .ListItems(i).ListSubItems(11).Text = "Ausente" Then
                
                For j = 1 To .ColumnHeaders.Count - 1
                    .ListItems(i).ListSubItems(j).ForeColor = vbBlack
                Next
            
            End If
        
        End With
    
    Next
    
End Sub
Qualquer dúvida é só falar.

Abraços.


ioncila
Colaborador
Colaborador
Mensagens: 35
Registrado em: Qui Dez 03, 2009 2:15 pm

Re: Colorir Texto de Listview baseada em condição

Mensagem por ioncila »

Mikel
Obrigado pela resposta e pela sugestão.
Já experimentei mas não aconteceu nada. Tentei de duas maneiras:
1. Colocando o seu código num módulo e chamando a macro introduzindo em "PreencherListview" um Call CoresLinhasLista
2. Criando um Private Sub e introduzindo em "PreencherListview" um Call CoresLinhasLista.

A userform abre mas o texto continua todo em black.

Experimentou no meu anexo?
O que estou a fazer de errado?

Ioncila


Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1173
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Governador Valadares - MG
Contato:

Re: Colorir Texto de Listview baseada em condição

Mensagem por Mikel Silveira Fraga »

ioncila, boa tarde.

Vou ser sincero, tentei e somente consegui fazer mudar de cores colocando o comando Call CoresLinhasListas sendo acionando por um botão.

No meu caso eu utilizo um DoubleClick para apenas as linhas que quero ficarem coloridas, mas o listview já iniciar carregado com as cores eu tb não consegui fazer 100%.

Mas não se preocupe, eu só não quebrei mais a cabeça com isso pq estou atrasado com um artigo, mas assim que folgar, vou dar uma atenção especial neste caso, ok.

Caso você consiga solucionar o mistério, não esqueça de postar aqui. Vamos conversando e logo alguém aparece com uma solução.

Abraços.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


ioncila
Colaborador
Colaborador
Mensagens: 35
Registrado em: Qui Dez 03, 2009 2:15 pm

Re: Colorir Texto de Listview baseada em condição

Mensagem por ioncila »

Mikel
Não precisa quebrar a cabeça. Eu é que preciso de aprender mais de VB :x
O seu código funciona na perfeição. Apenas não estava no sítio certo.
Fiz uma série de tentativas e finalmente coloquei-o no lugar correcto (Private Sub PreencherCabeçalhoLinhas).
O que eu agradecia é que desse uma olhada no sentido de optimizar o código, se possível, pois parece-me que com esta adição a form demora mais tempo a abrir.
Deixo aqui o anexo com essa alteração. Pode ser que seja útil para outros.

Um grande muito obrigado
Ioncila
Anexos
testforlinered.7z
Colorir Linha
(202.58 KiB) Baixado 574 vezes


Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1173
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Governador Valadares - MG
Contato:

Re: Colorir Texto de Listview baseada em condição

Mensagem por Mikel Silveira Fraga »

ioncila, bom dia.

A minha preocupação é de tentar aprender também. Sempre que vejo a possibilidade de estar ajudando nas dúvidas de outros usuários, é uma oportunidade de estar acrescentando aos meus conhecimentos também.

Vejo trabalhos feitos por alguns coletas do fórum e sinceramente, acredito que estou engatinhando ainda.. rs

Abraços e bons estudos.


Avatar do usuário
joseA
Jedi
Jedi
Mensagens: 1048
Registrado em: Qui Out 22, 2009 7:22 am
Localização: Cel. Fabriciano - MG

Re: Colorir Texto de Listview baseada em condição

Mensagem por joseA »

ioncila,

Poderia postar novamente seu arquivo, não está abrindo aqui.


ioncila
Colaborador
Colaborador
Mensagens: 35
Registrado em: Qui Dez 03, 2009 2:15 pm

Re: Colorir Texto de Listview baseada em condição

Mensagem por ioncila »

joseA escreveu:ioncila,

Poderia postar novamente seu arquivo, não está abrindo aqui.
Caro José
Aqui vai

Cumprimentos
Ioncila
Anexos
testforlinered.7z
(202.58 KiB) Baixado 650 vezes


Avatar do usuário
joseA
Jedi
Jedi
Mensagens: 1048
Registrado em: Qui Out 22, 2009 7:22 am
Localização: Cel. Fabriciano - MG

Re: Colorir Texto de Listview baseada em condição

Mensagem por joseA »

Vlw. ;)


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder