• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

joseA

Listview II

4 mensagens neste tópico

Boas,

Aprendí um pouco sobre Listview aquí http://www.portugal-a-programar.pt/index.php?showtopic=25527

:eek:

Gostaria de obter orientações de como editar:

Selecionar e buscar os dados para Textbox, fazer alterações nos Textbox e ao clicar no botão Alterar (alterar diretamente na folha).

Segue Ficheiro: http://www.4shared.com/file/113076271/92555fa3/Treino_Listview_II.html

Abraços

EDIT: Corrigidos links

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas ainda não tens nada feito no exemplo que mostraste !!!

O que já tentaste ?

Segundo o que me pareceu, só tens de procurar na lista pelo ID, e caso encontre modifica os dados, caso contrário, insere.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Muito obrigado pela atenção Paulino.

Na verdade este exemplo é a única referência que tenho sobre Listview. O que pretendo é clicar em um dado e os dados daquela linha me retorne nos textbox's, alteraria se necessário no textbox devido, clicaria no botão alterar e alteraria diretamente na folha.

Recentemente conseguí este código que me traz no listview os dados quando digito ID no TextBox1

Private Sub TextBox1_Change()
Dim strObjetoBuscar As String
Dim lngResultado As Long
Dim lngColumna As Long, lngFila As Long
Dim x As Integer, ab As Integer

ListView1.ListItems.Clear
strObjetoBuscar = TextBox1.Value
If strObjetoBuscar = "" Then GoTo 99
strObjetoBuscar = LCase(strObjetoBuscar)
    For a = 2 To 2010
        lngResultado = InStr(1, Folha1.Cells(a, 1), strObjetoBuscar, vbTextCompare)
            If lngResultado > 0 Then
                ListView1.ListItems.Add 1, , Format(Folha1.Range("A" & a).Value, "0000")
                ListView1.ListItems(1).ListSubItems.Add 1, , Folha1.Range("B" & a).Value
                ListView1.ListItems(1).ListSubItems.Add 2, , Folha1.Range("C" & a).Value
                ListView1.ListItems(1).ListSubItems.Add 3, , Format(Folha1.Range("D" & a).Value, "#,##0.00")
            End If
    Next a
99:
End Sub

Abraços.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas :cheers:  :cheesygrin:  ;D  :2funny: :bounce:

Deu para fazer,

Conseguí resolver o problema pesquisando. Alterei o layout na Folha1:

Id Nome Endereço Valor 1 *

001 Silva Rua A 1000 2 1

002 Reis Rua B 12,5 3 1

003 Paulo Rua C 4,25 4 1

004 Cristino Rua X 2500 5 1

005 José Rua J 10 6 1

*em F1 =CONT.VALORES(A:A)

Alterei o layout do UserForm inserindo:

LblIndex e TextBox5

Alterei também o código:


Private Sub UserForm_Initialize()
    ' Adiciona as colunas
'adicionei em propriedades>personalizar>ColumnHeaders
   With ListView1
        .FullRowSelect = True 'seleciona linha
        .View = lvwReport
    '    .ColumnHeaders.Add Text:="Id", Width:=40
     '   .ColumnHeaders.Add Text:="Nome", Width:=80
     '   .ColumnHeaders.Add Text:="Endereço", Width:=80
     '   .ColumnHeaders.Add Text:="Valor", Width:=70
     '   .ColumnHeaders.Add Text:="Index", Width:=40
        .Gridlines = True 'efeito grade

    End With
    '...................................................................
' Adiciona itens
Dim i As Integer
For i = 2 To Folha1.Range("F1").Value
ListView1.ListItems.Add 1, , Format(Folha1.Range("A" & i).Value, "000")
ListView1.ListItems(1).ListSubItems.Add 1, , Folha1.Range("B" & i).Value
ListView1.ListItems(1).ListSubItems.Add 2, , Folha1.Range("C" & i).Value
ListView1.ListItems(1).ListSubItems.Add 3, , Format(Folha1.Range("D" & i).Value, "#,##0.00")
ListView1.ListItems(1).ListSubItems.Add 4, , Folha1.Range("E" & i).Value
Next i
End Sub

Private Sub ListView1_Click()
Dim j As Integer
j = ListView1.SelectedItem.ListSubItems.Item(4).Text
Me.TextBox1.Text = Format(Folha1.Range("A" & j).Value, "000")
Me.TextBox3.Text = Folha1.Range("C" & j).Value
Me.TextBox4.Text = Format(Folha1.Range("D" & j).Value, "#,##0.00")
Me.TextBox2.Text = Folha1.Range("B" & j).Value
Me.LblIndex.Caption = Folha1.Range("E" & j).Value
Me.TextBox2.SetFocus
End Sub

Private Sub TextBox5_Change()
Dim strObjetoBuscar As String
Dim lngResultado As Long
Dim lngColumna As Long, lngFila As Long
Dim x As Integer, n As Integer

ListView1.ListItems.Clear
strObjetoBuscar = TextBox5.Value
If strObjetoBuscar = "" Then GoTo 99
strObjetoBuscar = LCase(strObjetoBuscar)
    For a = 2 To 2010
        lngResultado = InStr(1, Folha1.Cells(a, 2), strObjetoBuscar, vbTextCompare)
            If lngResultado > 0 Then
                ListView1.ListItems.Add 1, , Format(Folha1.Range("A" & a).Value, "000")
                ListView1.ListItems(1).ListSubItems.Add 1, , Folha1.Range("B" & a).Value
                ListView1.ListItems(1).ListSubItems.Add 2, , Folha1.Range("C" & a).Value
                ListView1.ListItems(1).ListSubItems.Add 3, , Format(Folha1.Range("D" & a).Value, "#,##0.00")
                ListView1.ListItems(1).ListSubItems.Add 4, , Folha1.Range("E" & a).Value
            
            End If
    Next a
99:
End Sub

Private Sub CommandButton1_Click()
If Me.LblIndex.Caption = "Index" Then
    MsgBox "Pesquise os dados.", 64, "Treino Listview"
  Exit Sub
End If

Folha1.Range("B" & LblIndex.Caption).Value = TextBox2.Text
Folha1.Range("C" & LblIndex.Caption).Value = TextBox3.Text
Folha1.Range("D" & LblIndex.Caption).Value = CDbl(TextBox4.Value)
Unload Me
End Sub

Conseguí o desejado clicando no item no Listview p/ buscar dados e mais uma pesquisa por nome.

Ficheiro Download:http://www.sendspace.com/file/tk1u9d

P.S.: Se Tiver material sobre o tema favor informar.  O0

Abraços

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora