Notifications
Clear all

Coluna do listview carrega a data atual, e colorir linha

8 Posts
3 Usuários
0 Reactions
3,168 Visualizações
cleiton jm
(@cleiton-jm)
Posts: 115
Estimable Member
Topic starter
 

Boa noite a todos do forum
Hoje to precisando de uma forcinha dos nossos amigos cracks no vba, porque não consigo resolver, fiz pesquisas, procurei aqui no forum alguma coisa a respeito e nada, Vamos là:
Eu precisava que uma das coluna do meu listview carrega-se com a data atual, ou seja, data da maquina, não axei nada que fale sobre isso.
Outra coisa, tem como eu colorir a primeira linha do listview, como o listview zebrado, mais só quero a primeira linha colorido.

obrigado a todos
att

 
Postado : 17/06/2012 5:26 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Poderia postar seu arquivo modelo COMPACTADO??

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 17/06/2012 5:50 pm
cleiton jm
(@cleiton-jm)
Posts: 115
Estimable Member
Topic starter
 

Boa noite alexandre, como vc pediu, para melhor entendimento, segue o anexo,
aproveitei e coloquei um código nesse exemplo que colori as linhas dos listviw que contem dados,eu encontrei na internet, mais não consegui adaptar para meu projeto, que pitanse só a primeira linha do listview.

abrss

 
Postado : 17/06/2012 6:29 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Não encontrei em seu modelo a Coluna Data da Maquina, somente Colunas "Data Compra e Data Final", então, baseando na Coluna G, Data Compra, utilizze a rotina abaixo, se não for a coluna correta, é só ajustar a mesma na Rotina :

Sub CARREGALISTVIEW()

Dim lastRow As Long
Dim rows As Long
Dim li As ListItem
Dim X As Long

Dim sDate As Date
Dim sDataG 'Data na Coluna G

'''index
Dim j   As Integer
Dim k   As Integer
'''''''''''
Dim i As Integer

'''''''''
    ' Adiciona as colunas
   With ListView1
        .Gridlines = True
        .View = lvwReport
        .ColumnHeaders.Clear
        '.FullRowSelect
        Me.ListView1.ColumnHeaders.Add , , "Seq"
    Me.ListView1.ColumnHeaders.Add , , "I.D"
    Me.ListView1.ColumnHeaders.Add , , "C.N.P.J"
    Me.ListView1.ColumnHeaders.Add , , "Descrição - Ativo Imobilizado"
    Me.ListView1.ColumnHeaders.Add , , "Vr Compra"
    Me.ListView1.ColumnHeaders.Add , , "Vida Útil"
    Me.ListView1.ColumnHeaders.Add , , "Data Compra"
    Me.ListView1.ColumnHeaders.Add , , "Data Final"
    Me.ListView1.ColumnHeaders.Add , , "Data Atual"
    Me.ListView1.ColumnHeaders.Add , , "M %"
    Me.ListView1.ColumnHeaders.Add , , "Vr. Mensal"
    Me.ListView1.ColumnHeaders.Add , , "T %"
    Me.ListView1.ColumnHeaders.Add , , "Vr.Trimestre"
    Me.ListView1.ColumnHeaders.Add , , "S %"
    Me.ListView1.ColumnHeaders.Add , , "Vr.Semestre"
    Me.ListView1.ColumnHeaders.Add , , "A %"
    Me.ListView1.ColumnHeaders.Add , , "Vr.Anual"
    'Me.ListView1.ColumnHeaders.Add , , "Vr.Residual"
    Me.ListView1.ColumnHeaders.Add , , "Situação"
    Me.ListView1.ColumnHeaders.Add , , "Familia"
    Me.ListView1.ColumnHeaders(1).Width = 40
    Me.ListView1.ColumnHeaders(2).Width = 40
    Me.ListView1.ColumnHeaders(3).Width = 80
    Me.ListView1.ColumnHeaders(4).Width = 180
    Me.ListView1.ColumnHeaders(5).Width = 70
    Me.ListView1.ColumnHeaders(6).Width = 50
    Me.ListView1.ColumnHeaders(7).Width = 60
    Me.ListView1.ColumnHeaders(8).Width = 60
    Me.ListView1.ColumnHeaders(9).Width = 60
    Me.ListView1.ColumnHeaders(10).Width = 40
    Me.ListView1.ColumnHeaders(11).Width = 60
    Me.ListView1.ColumnHeaders(12).Width = 40
    Me.ListView1.ColumnHeaders(13).Width = 60
    Me.ListView1.ColumnHeaders(14).Width = 40
    Me.ListView1.ColumnHeaders(15).Width = 60
    Me.ListView1.ColumnHeaders(16).Width = 40
    Me.ListView1.ColumnHeaders(17).Width = 60
    'Me.ListView1.ColumnHeaders(18).Width = 80
    Me.ListView1.ColumnHeaders(18).Width = 90
    Me.ListView1.ColumnHeaders(19).Width = 180
    End With
    '...................................................................
'limpar
ListView1.ListItems.Clear
       lastRow = Plan1.Cells(Plan1.Cells.rows.Count, "a").End(xlUp).Row
    
    ' Adiciona itens
   For X = 2 To lastRow
    
    sDataG = Plan1.Cells(X, "g").Value 'Datas na  Coluna G
    sDate = Date 'Data do Sistema
    
     If sDataG = sDate Then 'Se Data na Coluna G for Igual a Data do sistema
    
        Set li = ListView1.ListItems.Add(Text:=Plan1.Cells(X, "a").Value)
        
        li.ListSubItems.Add Text:=Plan1.Cells(X, "b").Value
        li.ListSubItems.Add Text:=Plan1.Cells(X, "c").Value
        li.ListSubItems.Add Text:=Plan1.Cells(X, "d").Value
        li.ListSubItems.Add Text:=Format(Plan1.Cells(X, "e").Value, "#,##0.00")
        li.ListSubItems.Add Text:=Plan1.Cells(X, "f").Value
        li.ListSubItems.Add Text:=Format(CDate(Plan1.Cells(X, "g").Value))
        li.ListSubItems.Add Text:=Format(CDate(Plan1.Cells(X, "h").Value))
        li.ListSubItems.Add Text:=Format(CDate(Plan1.Cells(X, "i").Value))
        li.ListSubItems.Add Text:=Format(Plan1.Cells(X, "j").Value, "#,##0.00")
        li.ListSubItems.Add Text:=Format(Plan1.Cells(X, "k").Value, "#,##0.00")
        li.ListSubItems.Add Text:=Format(Plan1.Cells(X, "l").Value, "#,##0.00")
        li.ListSubItems.Add Text:=Format(Plan1.Cells(X, "M").Value, "#,##0.00")
        li.ListSubItems.Add Text:=Format(Plan1.Cells(X, "N").Value, "#,##0.00")
        li.ListSubItems.Add Text:=Format(Plan1.Cells(X, "O").Value, "#,##0.00")
        li.ListSubItems.Add Text:=Format(Plan1.Cells(X, "P").Value, "#,##0.00")
        li.ListSubItems.Add Text:=Format(Plan1.Cells(X, "Q").Value, "#,##0.00")
        li.ListSubItems.Add Text:=Format(Plan1.Cells(X, "R").Value, "#,##0.00")
        li.ListSubItems.Add Text:=Plan1.Cells(X, "S").Value
        li.ListSubItems.Add Text:=Plan1.Cells(X, "T").Value
        li.ListSubItems.Add Text:=k
    
    k = k + 1

    
    End If
Next

    ListView1.ListItems.Add , , "Hello"
    Call SendMessage(ListView1.hwnd, LVM_SETTEXTBKCOLOR, 0&, vbRed)

End Sub

Quanto a colorir a coluna, depois dou uma olhada.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 18/06/2012 8:40 pm
cleiton jm
(@cleiton-jm)
Posts: 115
Estimable Member
Topic starter
 

Boa tarde Mauro,a rotina que vc passo não é o que gostariaa,
o que eu gostaria que listview fizesse era apenas carregar a coluna "data atual" com a data da maquina, ele só completasse a coluna do listview com essa data, o que vc me passo eu tenho que ter a data atual na planilha para ele carregar o mesmo, resumindo o que gostaria , a coluna do listview " data atual" completa automaticamento com a data da maquina, ele preenche atomaticamete a coluna inteira com a data da maquina.

 
Postado : 19/06/2012 10:36 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Cleiton,

Elimine as linhas

sDataG = Plan1.Cells(X, "g").Value 'Datas na Coluna G

E a Condição If sDataG = sDate Then . . .End If, que faz a comparação da Data, e altere a instrução que Add os dados no ListView, eu acredito que seja a abaixo :

li.ListSubItems.Add Text:=Format(CDate(Plan1.Cells(X, "i").Value))

por :

li.ListSubItems.Add Text:=sDate

Se entendi corretamente, se fizer conforme indicado acima resolverá.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 19/06/2012 11:36 am
cleiton jm
(@cleiton-jm)
Posts: 115
Estimable Member
Topic starter
 

agora deu certinho Mauro, era uma coisa tão simples de fazer, e eu apanhando aff
obrigado pela força
Agora só falto pinta a primeira linha do listview

 
Postado : 19/06/2012 6:16 pm
(@jairo2012)
Posts: 3
New Member
 

Olá...

Mauro.

E interessados no assunto...

Vi que sua resposta anterior foi quase parecida com minha dúvida. No meu caso a minha listview ela busca do banco e lista. Mais o problema é que quando salvo 01/10/2012 a liste lista 10/01/2012, no banco de dados fica correto mas ao lista na list a da inverte o dia pelo mês e assim sucessivamente sempre quando edito faz o mesmo processo.

De já muito obrigado!

'' Esse primeiro código salva e lista...

If Me.ComboBox1 = "LI-L01-GVARGA" Then                             '' SALVAR
registro = Worksheets("LI-L01-GVARGA").UsedRange.Rows.Count + 1

        Plan23.Cells(registro, 1) = TextBoxauditor.Value
        Plan23.Cells(registro, 2) = TextBox58.Value
        Plan23.Cells(registro, 3) = TextBox53.Value
        Plan23.Cells(registro, 8) = TextBox47.Value
        Plan23.Cells(registro, 4) = TextBox57.Value
        Plan23.Cells(registro, 5) = txtcrediarista.Value
        Plan23.Cells(registro, 6) = txtanalistacredito.Value
        Plan23.Cells(registro, 7) = txtjustificativaanalista.Value
        Plan23.Cells(registro, 9) = ComboBoxitem.Value
        Plan23.Cells(registro, 10) = TextBox54.Value
        Plan23.Cells(registro, 11) = TextBox55.Value
        Plan23.Cells(registro, 12) = TextBox57.Tag
        Plan23.Cells(registro, 13) = TimeValue(Now)
        Plan23.Cells(registro, 14) = ComboBox2.Value
        Plan23.Cells(registro, 15) = registro
                
linha = 2                   ''AO SALVAR O LISTVIEW É CARREGADA COM A NOVA ATUALIZAÇÃO...
        
ListView1.ListItems.Clear

Do While Plan23.Range("b" & linha) <> ""
        
Set Lista = ListView1.ListItems.Add(, , Plan23.Range("a" & linha))
            
               Lista.SubItems(1) = Format(Plan23.Range("b" & linha), "dd/mm/yyyy")
               Lista.SubItems(2) = Format(Plan23.Range("c" & linha), "dd/mm/yyyy")
               Lista.SubItems(3) = Plan23.Range("d" & linha)
               Lista.SubItems(4) = Plan23.Range("e" & linha)
               Lista.SubItems(5) = Plan23.Range("f" & linha)
               Lista.SubItems(6) = Plan23.Range("g" & linha)
               Lista.SubItems(7) = Plan23.Range("h" & linha)
               Lista.SubItems(8) = Plan23.Range("i" & linha)
               Lista.SubItems(9) = Plan23.Range("j" & linha)
               Lista.SubItems(10) = Plan23.Range("k" & linha)
               Lista.SubItems(11) = Plan23.Range("n" & linha)
               Lista.SubItems(12) = Plan23.Range("o" & linha)
               
linha = linha + 1
Loop
        
End If

''Esse segundo código é o de Editar

Private Sub Editar_Click()

If Me.ComboBox1 = "LI-L01-GVARGA" Then
registro = Me.Text_registro
        Plan23.Cells(registro, 1) = TextBoxauditor.Value
        Plan23.Cells(registro, 2) = TextBox58.Value
        Plan23.Cells(registro, 3) = TextBox53.Value
        Plan23.Cells(registro, 8) = TextBox47.Value
        Plan23.Cells(registro, 4) = TextBox57.Value
        Plan23.Cells(registro, 5) = txtcrediarista.Value
        Plan23.Cells(registro, 6) = txtanalistacredito.Value
        Plan23.Cells(registro, 7) = txtjustificativaanalista.Value
        Plan23.Cells(registro, 9) = ComboBoxitem.Value
        Plan23.Cells(registro, 10) = TextBox54.Value
        Plan23.Cells(registro, 11) = TextBox55.Value
        Plan23.Cells(registro, 12) = TextBox57.Tag
        Plan23.Cells(registro, 13) = TimeValue(Now)
        Plan23.Cells(registro, 14) = ComboBox2.Value
        Plan23.Cells(registro, 15) = Me.Text_registro
            

        MsgBox "Dados Editados com Sucesso!", vbInformation, "Editar Cadastro"

                
Dim linha As Integer         ''AO EDITAR O LISTVIEW É CARREGADA COM A NOVA ATUALIZAÇÃO...

linha = 2
        
ListView1.ListItems.Clear

Do While Plan23.Range("b" & linha) <> ""
        
Set Lista = ListView1.ListItems.Add(, , Plan23.Range("a" & linha))
            
               Lista.SubItems(1) = Format(Plan23.Range("b" & linha), "dd/mm/yyyy")
               Lista.SubItems(2) = Format(Plan23.Range("c" & linha), "dd/mm/yyyy")
               Lista.SubItems(3) = Plan23.Range("d" & linha)
               Lista.SubItems(4) = Plan23.Range("e" & linha)
               Lista.SubItems(5) = Plan23.Range("f" & linha)
               Lista.SubItems(6) = Plan23.Range("g" & linha)
               Lista.SubItems(7) = Plan23.Range("h" & linha)
               Lista.SubItems(8) = Plan23.Range("i" & linha)
               Lista.SubItems(9) = Plan23.Range("j" & linha)
               Lista.SubItems(10) = Plan23.Range("k" & linha)
               Lista.SubItems(11) = Plan23.Range("n" & linha)
               Lista.SubItems(12) = Plan23.Range("o" & linha)

linha = linha + 1

Loop

End If
 
Postado : 18/08/2012 6:09 pm