Página 1 de 2

Realçar valores em ListBox com numeros

Enviado: 19 Abr 2018 às 12:46
por JCabral
Boa tarde
Estou a ter um enorme problema, e que é o seguinte:
Tenho uma ListBox com várias colunas, em que , a primeira coluna é o ID da segunda coluna e as restantes colunas são parametros que classificam a tarefa que está na segunda coluna.

Assim a primeira e a segunda coluna têm valores fixos e as restantes podem variar.

Por isso queria criar uma userform para poder atualizar os dados (O botão atualizar não está a funcionar). Assim quando seleciono uma determinada linha na ListBox1 os valores nas ListBox2 até ListBox5 ficam realçados. Depois posso alterar os valores nas ListBox2 até ListBox5 e fazer o update dos valores.
O problema é que com números está a dar-me erro - ListBox3 e ListBox4 - e não consigo descobrir o porquê.

Estou a trabalhar com o Excel 2013 em Português, o problema poderá ter a haver com o simbolo que separa os números das casa decimais, i.e., "," ou "." . Ou seja na Userform aparece "." e na planilha aparece ","

Imagem
Imagem

Como posso resolver isto?

Obrigado mais uma vez

Re: Realçar valores em ListBox com numeros

Enviado: 23 Abr 2018 às 13:22
por JCabral
Descobri um exemplo na Net e adaptei, só que apesar de fazer o Highlight do item selecionado na ListBox1, nem sempre esse valor está de facto selecionado.

Ou seja o valor nem sempre é escrito na textbox. (tentem várias vezes, umas vezes dá outras não)

Alguma ajuda?

Obrigado
Jorge Cabral

Re: Realçar valores em ListBox com numeros

Enviado: 25 Abr 2018 às 19:27
por JCabral
Alguma dica?

Re: Realçar valores em ListBox com numeros

Enviado: 26 Abr 2018 às 23:29
por babdallas
Na segunda planilha que você mandou
Código: Selecionar todos
Sub ListBox1_Click()

    Dim T3 As Double
    TextBox7 = Macro1
    
    With ListBox2
        .ListIndex = -1
        For i = 0 To .ListCount - 1
                If .Column(0, i) = ListBox1.List(ListBox1.ListIndex, 0) Then
                    .ListIndex = i
                    .Selected(i) = True
                    Exit For
                End If
        Next i
    End With
    TextBox10.Value = ListBox2.List(ListBox2.ListIndex, 0)
End Sub

Private Sub ListBox2_Click()
    TextBox10.Value = ListBox2.List(ListBox2.ListIndex, 0)
End Sub

Re: Realçar valores em ListBox com numeros

Enviado: 27 Abr 2018 às 00:22
por babdallas
Veja se é isso.

Re: Realçar valores em ListBox com numeros

Enviado: 27 Abr 2018 às 20:20
por JCabral
babdallas escreveu:Veja se é isso.
babdallas

Funciona na perfeição excepto se eu formatar as colunas 3 , 4 11 e 12 da ListBox1 como percentagem, que é como eu gostaria que fosse o display da Listbox1.

Dá para dar mais uma ajuda?

Obrigado
Jorge

Re: Realçar valores em ListBox com numeros

Enviado: 27 Abr 2018 às 20:24
por babdallas
E o listbox 3 e 4, em número ou porcentagem?

Realçar valores em ListBox com numeros

Enviado: 27 Abr 2018 às 20:29
por JCabral
Tb em percentagem.

Obrigado

Re: Realçar valores em ListBox com numeros

Enviado: 27 Abr 2018 às 22:42
por babdallas
Fiz as seguintes mudanças (ver em anexo):
1) Formatei as porcentagens da Folha1;
2) Mudei o código para carregar a Listbox1, 3 e 4 para trazer com a porcentagem usando a propriedade RowSource ao invés de List, usando a propriedade Address com External=True para trazer a referência completa do intervalo que alimenta a Listbox (com Pasta de Trabalho, Nome de Planilha e Intervalo)

Espero que seja isso.

Realçar valores em ListBox com numeros

Enviado: 28 Abr 2018 às 18:41
por JCabral
Babdallas

Funciona impecavelmente, contudo consegui resolver com a sua anterior solução colocando:
Código: Selecionar todos
    lngLin = Application.WorksheetFunction.Match( _
                CDbl(Format(ListBox1.List(ListBox1.ListIndex, 3), "Standard")), Listas.ListObjects("tblAFTPDF").DataBodyRange, 0)
Depois de formatar as colunas e as ListBoxes para percentagem.

Muito obrigado

Re: Realçar valores em ListBox com numeros

Enviado: 02 Mai 2018 às 08:55
por JCabral
Babdallas

Deu-me um erro, quando os valores nas colunas 3 e/ou 4 são nulos.

Ou seja quando não existem valores e eu vou atualizar dá erro.

É possível contornar esse erro, sem ser com o "On error resume next"?

Obrigado mais uma vez
Jorge

Re: Realçar valores em ListBox com numeros

Enviado: 02 Mai 2018 às 11:33
por babdallas
Você pode ter valores de porcentagem na Listbox1 diferentes dos que estão na Listbox 3 e 4? Se sim, quando der o erro, as Listbox 3 e 4 não devem selecionar nada?
Explique um pouco melhor como você quer que se comporte quando a porcentagem da Listbox1 não for encontrada nas Listbox3 e 4.

Re: Realçar valores em ListBox com numeros

Enviado: 02 Mai 2018 às 11:45
por babdallas
Veja se é isso o que deseja.

Realçar valores em ListBox com numeros

Enviado: 02 Mai 2018 às 11:59
por JCabral
Por culpa minha não expliquei tudo direito desde o principio, então é assim:

- O que se pretende com esta planilha é classificar uma determinada tarefa, COLUNA#1 da ListBox1.
- Assim a ListBox1 terá sempre valores em COLUNA#0 e em COLUNA#1, todos os outros valores pode ter ou não dependendo se eu já classifiquei a tarefa ou não.

- Se eu já classifiquei a tarefa posso sempre alterar os valores nas ListBox2 a ListBox6 e atualizar os valores;
- Se eu ainda não classifiquei então posso classificar e atualizo os valores

O erro aparece quando ainda não classifiquei as tarefas ou seja quando os valores das colunas #2 a #12 da ListBox1, estão vazias.

Espero que agora esteja tudo claro.

Obrigado
Jorge Cabral

Re: Realçar valores em ListBox com numeros

Enviado: 02 Mai 2018 às 12:10
por JCabral
babdallas escreveu:Veja se é isso o que deseja.
Não é isso, porque o que vai acontecer é não ter valores mesmo e não ter valores igual a zero.

Re: Realçar valores em ListBox com numeros

Enviado: 02 Mai 2018 às 12:19
por babdallas
Veja agora.

Re: Realçar valores em ListBox com numeros

Enviado: 02 Mai 2018 às 14:30
por JCabral
Só resolveu em parte.
Anexo figura que mostra o que está errado e a respetiva planilha

Imagem

Obrigado

Re: Realçar valores em ListBox com numeros

Enviado: 02 Mai 2018 às 14:40
por babdallas
Veja agora.

Realçar valores em ListBox com numeros

Enviado: 02 Mai 2018 às 15:07
por JCabral
Vou testar melhor, mas acho que ainda está falhando algo.
Depois dou noticias

Obrigado

Re: Realçar valores em ListBox com numeros

Enviado: 03 Mai 2018 às 05:44
por JCabral
Bom dia Babdallas

Testei a sua ultima versão e está a aparecer um pequeno erro que explico na imagem abaixo.
Imagem
Parece que por algum razão a ultima instrução não é executada.
Mesmo que inclua a linha de código para fazer o refresh da ListBox6, conforme abaixo,não funciona - inclui nos dois "IF's.
Código: Selecionar todos
    If Application.WorksheetFunction.CountIf( _
                Listas.ListObjects("tblAFTPFO").DataBodyRange, ListBox1.List(ListBox1.ListIndex, 4)) > 0 Then
        lngLin = Application.WorksheetFunction.Match( _
                ListBox1.List(ListBox1.ListIndex, 4), Listas.ListObjects("tblAFTPFO").DataBodyRange, 0)
        ListBox4.Selected(lngLin - 1) = True
        TextBox3 = ListBox4.List(ListBox4.ListIndex, 0)
    Else
        ListBox4.RowSource = Listas.Range("tblAFTPFO").Address(external:=True)
        ListBox6.List = Listas.Range("tblK2").Value
        TextBox3 = ""
    End If
O que estará a acontecer?
Obrigado
Jorge