Notifications
Clear all

Dificuldade para formatar coluna listview em %

8 Posts
2 Usuários
0 Reactions
1,494 Visualizações
(@lorenzon)
Posts: 355
Honorable Member
Topic starter
 

Pessoal, boa tarde!

Solicito o apoio de vocês no sentido de ajudarem-me a fazer com que a listview apresente os números em percentual.

Vejam o código que eu utilizo para carregá-la:

Sub PreencherListView()
Dim lastRow As Long
Dim li As ListItem
Dim X As Long

'limpar
lslista.ListItems.Clear

lastRow = Plan2.Cells(Plan2.Cells.Rows.Count, "a").End(xlUp).ROW

' Adiciona itens
For X = 2 To lastRow
Set li = lslista.ListItems.Add(Text:=Format(Plan2.Cells(X, "a").Value, "00"))
li.ListSubItems.Add Text:=Plan2.Cells(X, "b").Value
li.ListSubItems.Add Text:=Plan2.Cells(X, "c").Value
li.ListSubItems.Add Text:=Plan2.Cells(X, "d").Value
li.ListSubItems.Add Text:=Plan2.Cells(X, "e").Value

Next
End Sub

 
Postado : 18/06/2014 1:25 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Não sei em qual coluna quer a formatação, então segue duas linhas basicas:

Se for nesta:
Set li = lslista.ListItems.Add(Text:=Format(Plan2.Cells(X, "a").Value, "00"))
Ficaria:
Set li = lslista.ListItems.Add(Text:=Format(Plan2.Cells(x, "a").Value, "0%"))

Se for em algumas destas :
li.ListSubItems.Add Text:=Plan2.Cells(X, "b").Value
ficaria :
li.ListSubItems.Add Text:=Format(Plan2.Cells(x, "b").Value, "0%")

[]s

 
Postado : 18/06/2014 5:05 pm
(@lorenzon)
Posts: 355
Honorable Member
Topic starter
 

Mauro,

Confesso que utilizei esta opção antes de postar este tópico, mas, não sei por qual motivo, a mesma não solucionou o meu problema.

=/

 
Postado : 19/06/2014 2:15 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Mauro,
Confesso que utilizei esta opção antes de postar este tópico, mas, não sei por qual motivo, a mesma não solucionou o meu problema.
=/

Lorenzon, a formatação é esta, se não funcionou verifique que tipo de dados está em sua planilha, veja se realmente está como numerico.

[]s

 
Postado : 19/06/2014 9:38 pm
(@lorenzon)
Posts: 355
Honorable Member
Topic starter
 

Mauro,

Fiz o que você sugestionou, mas o problema persistiu.

Os números em percentuais são apresentados, por exemplo, deste modo:

83%

0,83656854548745485748748545454665

 
Postado : 20/06/2014 11:07 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Lorenzon, você quer dizer que não funcionou ou não está formatando da forma que pretende ?

Para poder analisar melhor, só vendo o seu modelo, fora isto vamos ficar em suposições.

[]s

 
Postado : 20/06/2014 11:40 am
(@lorenzon)
Posts: 355
Honorable Member
Topic starter
 

Mauro,

Desculpa-me pela minha ''burrice" kkk

eu esqueci de chamar o código no initialize.

O mesmo funcionou perfeitamente!

vlw!

 
Postado : 20/06/2014 2:15 pm
(@lorenzon)
Posts: 355
Honorable Member
Topic starter
 

Prezados (as), boa tarde!

Com o auxílio do Mauro, obtive êxito na formatação, em percentual, de uma das colunas da listview. Vejam o tópico:

viewtopic.php?f=10&t=12142

O que acontece é que, agora, eu possuo um código diferente ao que apresentei no tópico acima. O exemplo do Mauro não foi compatível e/ou eu não tive a capacidade de adaptá-lo para esta nova necessidade.

Desde modo, solicito o apoio de vocês no sentido de ajudarem-me a formatar, na listview, os dados oriundos da coluna P do sheets ("Banco de dados"), utilizando o código abaixo:

Private Sub PreencherCabeçalhoLinhas()

Dim ws As Worksheet
Dim coluna As Integer
Dim linha As Integer
Dim itm As ListItem, n As Long, lngCol As Long
Dim vardata As Variant

Call atualizar

Set ws = ThisWorkbook.Worksheets(NomeDaPlanilha)

coluna = 1
linha = LinhaCabecalho

Me.lslista.ListItems.Clear
Me.lslista.ColumnHeaders.Clear

vardata = ws.Range("b1").CurrentRegion.Value

With ws
While .Cells(linha, coluna).Value <> Empty
With lslista
.View = lvwReport
.Gridlines = True
.ColumnHeaders.Add Text:=ws.Cells(linha, coluna), Width:=ws.Cells(linha, coluna).Width

End With
coluna = coluna + 1
Wend

'Preenche as Linhas
With lslista
For n = 2 To UBound(vardata)
Set itm = .ListItems.Add(n - 1, , vardata(n, 1))
For lngCol = 2 To UBound(vardata, 2)

'verifica se é Data e formata a Coluna
If IsDate(vardata(n, lngCol)) Then
itm.ListSubItems.Add , , vardata(n, lngCol)

' itm.ListSubItems.Add , , Format(vardata(n, lngCol), "R$ #,##0.00")
Else
itm.ListSubItems.Add , , vardata(n, lngCol)
End If

Next lngCol
Next n

End With

End With

End Sub

 
Postado : 30/06/2014 1:12 pm