Página 6 de 8

Re: Controle ListView

Enviado: Ter Set 07, 2010 1:12 pm
por joseA
Boa tarde,
Guima escreveu:... Veja como ficou toda a rotina após adaptá-la...
E ai, resolveu??

Para um direcionamento, este procedimento lista os dados do controle LISTA:

Código: Selecionar todos

 Dim y As Integer
    
    For y = 1 To LISTA.ListItems.Count
       MsgBox "Código: " & LISTA.ListItems(y).Text & Chr(13) & _
    "Produto: " & LISTA.ListItems(y).ListSubItems(1).Text & Chr(13) & "Quantidade: " & _
    LISTA.ListItems(y).ListSubItems(2).Text & Chr(13) & "Valor: " & _
    LISTA.ListItems(y).ListSubItems(3).Text & Chr(13) & "Total: " & _
    LISTA.ListItems(y).ListSubItems(4).Text
    Next

Re: Controle ListView

Enviado: Ter Set 07, 2010 1:24 pm
por joseA
Em tempo...

Teste assim:

Código: Selecionar todos

' AQUI MORA O PROBLEMA....
For y = 1 To LISTA.ListItems.Count
Set r = Sheets("BDCQE").Range("C2:C5000").Find(What:=Val(LISTA.ListItems(y).Text), After:=Sheets("BDCQE").Range("C2"), LookIn:=xlValues, LOOKAT _
        :=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False)

    If Not r Is Nothing Then
        Sheets("BDCQE").Range("E" & r.Row) = Sheets("BDCQE").Range("E" & r.Row) - (LISTA.ListItems(y).SubItems(2))
    End If


  Next

Re: Controle ListView

Enviado: Ter Set 07, 2010 1:28 pm
por Mauro Coutinho
Guima, utilizando o Modelo do José, veja se seria isso, só os resultados que teria de setar as colunas, isso não entendi direito, mas procura pelo Valor da Coluna 1 do Listview se tem na Coluna C da Planilha e se encontra faz a operação.

José depois testo com a sua rotina que postou acima.

[]s

Re: Controle ListView

Enviado: Ter Set 07, 2010 1:31 pm
por Guima
Ufa... matou o problema José !!!

Rapaz... então o LISTVIEW começa mesmo com "0", certo ?

Brigadão José, Mauro e todos que acompanharam o tópico. Tô me acostumando com o LISTIVIEW ainda, mas tô ficando surpreso com a infinidade de recursos que ele possui.

Abração pra todos

Re: Controle ListView

Enviado: Ter Set 07, 2010 1:57 pm
por joseA
Rapaz... então o LISTVIEW começa mesmo com "0", certo ?
Correto.

O seu raciocínio estava certo, veja que alterei apenas referências as colunas no seu exemplo. O que estava pegando aqui é o micro e a minha falta de paciência.

Para mim o ListView é a evolução do ListBox.

Ah...
Guima escreveu:... restam-me os Heróis da Resistência...
Lembranças aos Heróis da Resistência. :lol: Fiquei orgulhoso por ter salvo mais alguns..

Abraços a todos. Especialmente a vc, Mauro e Tomás, parceiros nessa empreitada.

Re: Controle ListView

Enviado: Ter Set 07, 2010 8:18 pm
por Guima
Guima, utilizando o Modelo do José, veja se seria isso, só os resultados que teria de setar as colunas, isso não entendi direito, mas procura pelo Valor da Coluna 1 do Listview se tem na Coluna C da Planilha e se encontra faz a operação.
Mauro, o exemplo é um pouco diferente do que eu pretendia, mas com o auxílio do nosso companheiro José o problema foi solucionado. De qualquer forma seu exemplo já esta guardado em meu acervo e para continuar meus estudos sobre o Listview.

Lembranças aos Heróis da Resistência. Fiquei orgulhoso por ter salvo mais alguns..
Houveram algumas baixas significativas nos Heróis da Resistência, mas ainda permanecem...Valeu pela força José.

Bom, deixo algumas dúvidas que se não forem respondidas tudo bem, são apenas curiosidades minha.
- É possivel instalar as .OCX do MSFLEXGRID para que ele funcione no EXCEL ?
- Há como fazer o foco do LISTVIEW ficar sempre na última linha, de modo que a barra de rolagem desça automaticamente ?

Abração e bom final de feriadão para todos

Re: Controle ListView

Enviado: Ter Set 07, 2010 8:41 pm
por Mauro Coutinho
Guima, para selecionar o último item do Listview, use:

Código: Selecionar todos

Private Sub CommandButton1_Click()
   ListView1.ListItems(ListView1.ListItems.Count).EnsureVisible
    ListView1.ListItems(ListView1.ListItems.Count).Selected = True
    ListView1.SetFocus
End Sub
Está associada um Botão mas é só fazer as adaptações, e para rolar o Scrowl sem selecionar, use :

Código: Selecionar todos

Private Sub CommandButton2_Click()
    Dim i As Integer
    
    For i = 1 To ListView1.ListItems.Count
        ListView1.ListItems(i).EnsureVisible
        If 9 = ListView1.GetFirstVisible.Index Then Exit For
    Next i
End Sub
Vou colocar a Fonte, mas a mesma já foi postada em outros Tópicos:
FONTE : - http://silkyroad.developpez.com/VBA/ListView/

Quaanto a OCX, não tenho conhecimento, mas assim que tiver algo eu posto.

abraços

Re: Controle ListView

Enviado: Ter Set 07, 2010 8:57 pm
por Guima
;) Perfeito Mauro !!! FIcou excelente !!!

O site onde você pegou a referência é ótimo também.


Sobre a .OCX ainda também não encontrei nada, mas se achar também posto aqui.

Abraços

Re: Controle ListView

Enviado: Ter Set 07, 2010 9:31 pm
por Guima
Mauro e toda turma,

O idioma inglês infelizmente não é o meu forte, pelo pouco que consegui entender achei opiniões divergentes sobre o MSFLEXGRID para o excel, confiram e dêem suas opiniões por gentileza:

http://translate.google.com.br/translat ... 26page%3D1

http://groups.google.com/group/microsof ... h&&d&pli=1

Re: Controle ListView

Enviado: Ter Set 07, 2010 9:32 pm
por joseA
Com as dicas desse site que o Mauro referenciou é que consegui entender mais sobre o controle.