ATENÇÃO NOVOS USUÁRIOS

Se registrou recentemente? Seu cadastro será avaliado e mendiante aprovação, a conta será ativada e você poderá usufruir do fórum. O tempo de avaliação gira em torno de 24 a 48 horas.

Esqueceu sua senha?

Você pode usar o mecanismo de lembrete neste link: Recuperar senha

Você receberá um link de reativação no email cadastrado.

Não recebeu o email? Lembre-se checar o Lixo Eletrônico.

Colorir linha do Listview de acordo com critério

Esclarecimentos e dúvidas sob o Modelo de Aplicativo de Cadastro em VBA no Microsoft Excel publicado no site e blog http://www.tomasvasquez.com.br
Jtruculo
Acabou de chegar
Acabou de chegar
Mensagens: 5
Registrado em: Sáb Mar 12, 2016 5:24 am

Colorir linha do Listview de acordo com critério

Mensagem por Jtruculo » Dom Jun 28, 2020 12:11 pm

Pessoal, boa tarde!

Sou um grande fã do canal e do formulário de cadastro. Já fiz utilização dele em vários trabalhos e obtive bons resultados, porem sempre sem muitas alterações no formulário, apenas fiz validações, acréscimo de campos e aplicação de eventos como enviar e-mail, impedir duplicidade, mascara em campos, salvar pdf etc. Agora surgiu uma demanda, preciso controlar vencimentos através do listview, alguém do forum tem um código de exemplo utilizando o formulário de cadastro (2) do Tomás onde através de uma data comparada com (hoje) na coluna do listview possamos determinar a cor da fonte da linha do listview que satisfaz o critério? Ex: Data<15 dias Azul; Data< 5 dias = Laranja Data>Hoje vermelho... Estou usando a versão 2. Desde já agradeço! Bom estudo a todos



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.


Jtruculo
Acabou de chegar
Acabou de chegar
Mensagens: 5
Registrado em: Sáb Mar 12, 2016 5:24 am

Re: Colorir linha do Listview de acordo com critério

Mensagem por Jtruculo » Ter Jul 07, 2020 6:15 pm

Pessoal, boa tarde!

Verifiquei que tivemos muitos views da proposta que abri (+200) mas nenhuma resposta
Pelo que estudei aqui, o ListView não é muito querido pela comunidade, mas é muito funcional para controles de vencimentos por ex...

Achei um mega post aqui do Mikel: viewtopic.php?f=20&t=6313&p=25182&hilit ... iew#p25182

Neste post ele comenta sobre um modelo (perfeito com listView) do MDC do Tomas adaptado pelo Mauro Coutinho, que adaptou o MDC para ListView em vez de ListBox, não tinha percebido esta publicação

Sobre colorir as linhas do ListView conforme critério, utilizei a sub abaixo postada pelo Edivan Cabral no seu canal do Youtube, funcionou bem no carregamento inicial, porem está travando a atualização da tela quando faço a pesquisa no UserForm frmPerquisa, ainda não consegui aplicar o colorir critérios nas linhas do ListView APÓS CLICAR NO BOTÃO FILTRAR, o form frmPesquisa faz a pesquisa normalmente, retorna os dados mas colore APENAS a primeira coluna do ListView (ID). Apenas um bug nos separa da missão, se alguém tiver uma ideia eu agradeço.

Segue o modelo de cadastro com listview + um modulo para colorir as linhas conforme critérios
(0~10 = Vermelho; 11~20 = Laranja e 21~30 = Verde)
Obs: A coluna que está sendo usada para calcular e colorir a linha do listview é a nr. 3 (Vencimento), não tive tempo de preparar maiores automações

Sub utilizada:

Sub Colorir_Linhas_Com_Criterios()

Dim Colunas As Integer
Dim linhas As Integer
Dim x As Integer
Dim y As Integer


With frmPesquisa


Colunas = .lstLista.ColumnHeaders.Count
linhas = .lstLista.ListItems.Count

For y = 1 To linhas
'Menores de 10
If .lstLista.ListItems(y).ListSubItems(2) < 10 Then
.lstLista.ListItems(y).ForeColor = RGB(255, 0, 0)

For x = 1 To Colunas - 1
On Error Resume Next
.lstLista.ListItems(y).ListSubItems(x).ForeColor = RGB(255, 0, 0)
Next
GoTo Continue
End If

'Menores de 20
If .lstLista.ListItems(y).ListSubItems(2) < 20 Then
.lstLista.ListItems(y).ForeColor = RGB(246, 110, 26)

For x = 1 To Colunas - 1
On Error Resume Next
.lstLista.ListItems(y).ListSubItems(x).ForeColor = RGB(246, 110, 26)
Next
GoTo Continue
End If

'Menores de 30
If .lstLista.ListItems(y).ListSubItems(2) < 30 Then
.lstLista.ListItems(y).ForeColor = RGB(2, 202, 78)

For x = 1 To Colunas - 1
On Error Resume Next
.lstLista.ListItems(y).ListSubItems(x).ForeColor = RGB(2, 202, 78)
Next
GoTo Continue
End If

Continue:
Next

End With
End Sub
Anexos
Tomas Vasquex Listview.rar
(70.02 KiB) Não foi baixado ainda



Avatar do usuário
Rafael Monteiro
Consultor
Consultor
Mensagens: 277
Registrado em: Seg Nov 28, 2011 8:27 am
Localização: Sorocaba - SP
Contato:

Re: Colorir linha do Listview de acordo com critério

Mensagem por Rafael Monteiro » Ter Jul 07, 2020 10:23 pm

Olá Jtruculo ,

Parece que você encontrou um post que te ajudou. Mas o importante é entender de maneira mais clara como funciona as cores nas linhas e colunas Listview, por que tenha certeza que você vai se deparar com muitos probleminhas nesse código de colorir.

A dica que dou é o seguinte: Aplicar Formatação Condicional em "Número" é diferente de "Data". O formato do texto ou número faz com que a regra do IF não seja aplicada corretamente. Por isso deve ter em mente como usar esse código em diversos tipos de formatos de texto.

Analise isso. Qualquer dúvida me chame no Privado.

Abs.


Abs.

Rafael R Monteiro.

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