Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
  • Avatar do usuário
Avatar do usuário
Por gabriela1584
Avatar
#23888
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
Você não está autorizado a ver ou baixar esse anexo.
Avatar do usuário
Por Reinaldo
Avatar
#23895
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
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord