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 ","
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 todosSub 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
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.

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