Vídeo recomendado
https://youtu.be/diWPPPhW-9E

ERRO LISTVIEW COM HORAS *RESOLVIDO*

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
RUSSO_RP
Colaborador
Colaborador
Mensagens: 11
Registrado em: Ter Nov 05, 2019 6:31 am

ERRO LISTVIEW COM HORAS *RESOLVIDO*

Mensagem por RUSSO_RP »

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...
Editado pela última vez por RUSSO_RP em Qui Dez 19, 2019 9:52 pm, em um total de 1 vez.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: ERRO LISTVIEW COM HORAS

Mensagem por webmaster »

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?


RUSSO_RP
Colaborador
Colaborador
Mensagens: 11
Registrado em: Ter Nov 05, 2019 6:31 am

Re: ERRO LISTVIEW COM HORAS

Mensagem por RUSSO_RP »

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


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: ERRO LISTVIEW COM HORAS

Mensagem por webmaster »

Oops... acho que vamos precisar da planilha chamados


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: ERRO LISTVIEW COM HORAS

Mensagem por Reinaldo »

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):

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
Observação: Se alguma das datas possa, eventualmente, ser nula/sem valor talvez possa gerar erro, que devera ser tratado


RUSSO_RP
Colaborador
Colaborador
Mensagens: 11
Registrado em: Ter Nov 05, 2019 6:31 am

Re: ERRO LISTVIEW COM HORAS *RESOLVIDO*

Mensagem por RUSSO_RP »

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!!!


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: ERRO LISTVIEW COM HORAS

Mensagem por Reinaldo »

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.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder