Página 1 de 1

Status com ícone no Listview!

Enviado: 13 Jun 2017 às 16:55
por gabriela1584
Pessoal, estou com problemas com dados da Listview e não consigo achar o erro.
Se alguém puder ajudar, agradeço eternamente! =)

Tenho 4 status e o ícone muda de acordo... então:
Se qtde de tela baixa e imperm. baixa for igual a zero = aparece o ícone cinza (ESSE ESTÁ OK)
Se qtde de tela baixa e imperm. baixa for menor/igual a tela ref. e imperm. ref. = aparece o ícone verde (ESSE ESTÁ OK)
Se qtde de tela baixa e imperm. baixa for maior que a tela ref. e imperm. ref. = aparece o ícone vermelho (ESSE ESTÁ OK)
Se um ou outro exceder a qtde de referência = aparece o ícone amarelo (ESSE ESTÁ OK)

Só que quando eu coloco um número maior que 99, ele não considera minhas condições... ele deixa tudo com o ícone verde, como se fosse menor/igual a qtde de referência...

Por que será que só não funciona quando digito um nº maior que 99?

Imagem

Status com ícone no Listview!

Enviado: 14 Jun 2017 às 09:58
por Reinaldo
Muito provavelmente os "valores" comparados estão sendo considerados como string/texto, nessa situação 90 e maior do que 100.
Experimente utilizando, na rotina de comparação, uma das funções de conversão de valores; se forem sempre valores inteiros pode utilizar Val ou então Cdec ou Cdbl:
algo +/- assim
Código: Selecionar todos
Sub verificastatus()
Dim x As Integer
    For x = 1 To ListView1.ListItems.Count 'Se tela e imp. for igual a 0
        If CDbl(ListView1.ListItems(x).SubItems(4)) = 0 And CDbl(ListView1.ListItems(x).SubItems(5)) = 0 Then
            ListView1.ListItems(x).SmallIcon = "ic_lancar"
        
        ElseIf CDbl(Me.ListView1.ListItems(x).SubItems(5)) > CDbl(Me.ListView1.ListItems(x).SubItems(3)) And _
               CDbl(Me.ListView1.ListItems(x).SubItems(4)) > CDbl(Me.ListView1.ListItems(x).SubItems(2)) Then
               ListView1.ListItems(x).SmallIcon = "ic_excedido"
        
        ElseIf CDbl(Me.ListView1.ListItems(x).SubItems(5)) > CDbl(Me.ListView1.ListItems(x).SubItems(3)) Or _
               CDbl(Me.ListView1.ListItems(x).SubItems(4)) > CDbl(Me.ListView1.ListItems(x).SubItems(2)) Then
               ListView1.ListItems(x).SmallIcon = "ic_excedido_parcial"
        
        ElseIf CDbl(Me.ListView1.ListItems(x).SubItems(5)) <= CDbl(Me.ListView1.ListItems(x).SubItems(3)) And _
               CDbl(Me.ListView1.ListItems(x).SubItems(4)) <= CDbl(Me.ListView1.ListItems(x).SubItems(2)) Then
               ListView1.ListItems(x).SmallIcon = "ic_lancado_ok"
        End If
    Next
End Sub

Re: Status com ícone no Listview!

Enviado: 14 Jun 2017 às 13:53
por gabriela1584
Oi, Reinaldo!!!
Funcionou!!
Muito obrigada!!! =)

Te devo um almoço... rsss...
:D