Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
ERRO LISTVIEW COM HORAS *RESOLVIDO*
ERRO LISTVIEW COM HORAS *RESOLVIDO*
Bom dia!
Criei um listview no meu formulario para o pessoal visualizar os chamados sem alterar nada na base de dados. Porem tenho 3 colunas que sao campos de horas, na tabela estao como horas, mas quando vem para o LISTVIEW esta vindo como numeros decimais.
Alguem teria uma solucao.
Desde ja agradeco...
Criei um listview no meu formulario para o pessoal visualizar os chamados sem alterar nada na base de dados. Porem tenho 3 colunas que sao campos de horas, na tabela estao como horas, mas quando vem para o LISTVIEW esta vindo como numeros decimais.
Alguem teria uma solucao.
Desde ja agradeco...
Editado pela última vez por RUSSO_RP em Qui Dez 19, 2019 9:52 pm, em um total de 1 vez.
Re: ERRO LISTVIEW COM HORAS
No Excel, datas e horas são números por padrão. Tem que formatar os dados antes de mandar para o Listview. Pode postar o código aqui?
Re: ERRO LISTVIEW COM HORAS
Segue o codigo utilizado.
Na tabela de dados os campos estao formatados como hora.
Private Sub UserForm_Initialize()
With Me.ListView1
.Gridlines = True
.HideColumnHeaders = False
.View = lvwReport
End With
Call PreencherView
End Sub
Private Sub PreencherView()
Dim origem As Worksheet
Dim contar As Range
Dim rCell As Range
Dim lsItem As ListItem
Dim linCont As Long
Dim colCont As Long
Dim i As Long
Dim j As Long
Set origem = Worksheets("chamados")
Set contar = origem.Range("A1").CurrentRegion
For Each rCell In contar.Rows(1).Cells
Me.ListView1.ColumnHeaders.Add Text:=rCell.Value, Width:=70
Next rCell
linCont = contar.Rows.Count
colCont = contar.Columns.Count
For i = 2 To linCont
Set lsItem = Me.ListView1.ListItems.Add(Text:=contar(i, 1).Value)
For j = 2 To colCont
lsItem.ListSubItems.Add Text:=contar(i, j).Value
Next j
Next i
End Sub
Na tabela de dados os campos estao formatados como hora.
Private Sub UserForm_Initialize()
With Me.ListView1
.Gridlines = True
.HideColumnHeaders = False
.View = lvwReport
End With
Call PreencherView
End Sub
Private Sub PreencherView()
Dim origem As Worksheet
Dim contar As Range
Dim rCell As Range
Dim lsItem As ListItem
Dim linCont As Long
Dim colCont As Long
Dim i As Long
Dim j As Long
Set origem = Worksheets("chamados")
Set contar = origem.Range("A1").CurrentRegion
For Each rCell In contar.Rows(1).Cells
Me.ListView1.ColumnHeaders.Add Text:=rCell.Value, Width:=70
Next rCell
linCont = contar.Rows.Count
colCont = contar.Columns.Count
For i = 2 To linCont
Set lsItem = Me.ListView1.ListItems.Add(Text:=contar(i, 1).Value)
For j = 2 To colCont
lsItem.ListSubItems.Add Text:=contar(i, j).Value
Next j
Next i
End Sub
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: ERRO LISTVIEW COM HORAS
Sem saber qual a coluna que recebe o valor hora fica dificil, como disse o colega Tomas precisamos da planilha chamado, mas dependendo de sua habilidade com o vba e supondo que sejam as colunas E,F e G (adeque a sua realidade); uma possibilidade (sem testar):
Observação: Se alguma das datas possa, eventualmente, ser nula/sem valor talvez possa gerar erro, que devera ser tratado
Código: Selecionar todos
Private Sub PreencherView()
Dim origem As Worksheet, lsItem As ListItem
Dim contar As Range, rCell As Range
Dim linCont As Long, colCont As Long
Dim i As Long, j As Long
Set origem = Worksheets("chamados")
Set contar = origem.Range("A1").CurrentRegion
For Each rCell In contar.Rows(1).Cells
Me.ListView1.ColumnHeaders.Add Text:=rCell.Value, Width:=70
Next rCell
linCont = contar.Rows.Count
colCont = contar.Columns.Count
For i = 2 To linCont
Set lsItem = Me.ListView1.ListItems.Add(Text:=contar(i, 1).Value)
For j = 2 To colCont
Select Case j
Case 5, 6,7 'se for coluna "E" / "F" ou "G"
lsItem.ListSubItems.Add Text:=contar(i, j).Text 'ou tambem --> lsItem.ListSubItems.Add Text:=format(contar(i, j).Value,"hh:mm")
Case Else
lsItem.ListSubItems.Add Text:=contar(i, j).Value
End Select
Next j
Next i
End Sub
Re: ERRO LISTVIEW COM HORAS *RESOLVIDO*
Reinaldo,
Mais uma vez obrigado, funcionou perfeitamente seu codigo.
Aproveitando, tenho mais uma duvida, tem algumas colunas que eu gostaria de ocultar no listview, como posso fazer isso?
Obrigado mais uma vez!!!
Mais uma vez obrigado, funcionou perfeitamente seu codigo.
Aproveitando, tenho mais uma duvida, tem algumas colunas que eu gostaria de ocultar no listview, como posso fazer isso?
Obrigado mais uma vez!!!
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: ERRO LISTVIEW COM HORAS
Apesar de visualmente se assemelhar a uma planilha excel, o listview não tem as mesmas funcionalidades; desconheço qualquer função "ocultar" no listview,
caso a coluna não deva ser visualizada, não deve ser carregada.
caso a coluna não deva ser visualizada, não deve ser carregada.