Notifications
Clear all

Transferir dados simultaneamente de Listbox

12 Posts
1 Usuários
0 Reactions
6,414 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia Pessoal,

Há como selecionar várias linhas de um Listbox e transferir todas simultaneamente para um outro Listbox ou Listview ?

 
Postado : 18/01/2012 9:14 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Desculpem o double post, mas achei que ficou meio vago... digitei na pressa no serviço e faltou detalhar.

Achei esse arquivo que segue no anexo na internet. Ele pega os dados selecionados (multi-select) no Listbox e transfere para uma planilha. Ele reflete bem o que gostaria de fazer, mas meu intuito seria transferir os dados para um OUTRO Listbox.

Exemplo: Seleciono 5 linhas no Listbox1, então depois transfiro as 5 linhas selecionadas para o Listbox2. É isso !!!

Espero ter sido mais claro dessa vez e que alguém saiba como fazer essa rotina.

Valeu

 
Postado : 18/01/2012 8:42 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Guima, o modelo abaixo foi feito pelo Andy Pope em 2008, não tenho mais o link, mas alem da opção que quer tambem tem para mover o item selecionado de posição no Listbox, veja se ajuda.

Mover e Transferir entre Listbox

[]s

 
Postado : 18/01/2012 9:55 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Valeu Mauro !

Pelo que vi do exemplo é isso, aliás peço desculpas por não ter citado a fonte.Tô tentando entender ainda como o cara fez isso, pois não há nenhuma rotina sendo executada quando se clica no Button. Antes de pedir ajuda de novo, vou tentar entender o exemplo.

Abraço

 
Postado : 19/01/2012 6:07 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Guima, as associações aos controles estão no Modulo de Classe, onde utilizasse do Evento "WithEvents", geralmente utilizado para o recursso em "Tempo de Execução".

No link abaixo temos algo a respeito e exemplo sobre "Em Tempo de Execução :
inserir controle em tempo de execução
viewtopic.php?f=10&t=2858&start=10

inserir controle em tempo de execução
viewtopic.php?f=10&t=2858&start=10

Handle Multiple UserForm Buttons With One Subroutine
http://j-walk.com/ss/excel/tips/tip44.htm

Create User Form Using VBA
http://www.tek-tips.com/faqs.cfm?fid=5757

[]s

 
Postado : 19/01/2012 7:19 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa noite Mauro,

Confesso que os controles em tempo de execução foram demais para meus parcos conhecimentos. Mas encontrei uma solução mais simplificada do Mr. Excel: http://www.mrexcel.com/forum/showthread.php?t=49555

Comecei a adaptar para meu propósito, porém da segunda coluna em diante os dados estão sendo substituídos. Estou colocando o exemplo que criei em anexo, pois talvez você ou alguém do fórum possa me esclarecer onde estou falhando.

valeu

 
Postado : 19/01/2012 7:52 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

...selecionar várias linhas de um Listbox e transferir todas simultaneamente para um outro Listbox ou Listview ?

Consegui do ListView1 p/ ListView2, serve. :roll:

 
Postado : 20/01/2012 1:25 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Olá José !

Quem é fera é fera mesmo...rs. Lógico que serve, eu me distrai tanto com os exemplos que vi em Listbox que até esqueci do Listview, mas nele fica ainda melhor.

Como você fez ? Seguiu a mesma lógica no Listview ou usou alguma outra rotina ?

Valeu José

 
Postado : 20/01/2012 2:06 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Usei, praticamente a mesma lógica de seleção de itens. Com o Listbox não consegui, mas ainda não desistí.... :lol:

Segue anexo:

 
Postado : 20/01/2012 3:54 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

No Listbox, até que foi fácil. O problema é que nos prendemos a lógica do modelo passado, que inventaram demais, até o que está lá é possivel fazer de uma maneira bem mais simples. Segui a mesma lógica do ListView, afinal são irmãos. :lol:

Olha como fica bem simples:

'Autor: José Arnaldo do nascimento
    Dim i As Long
    Dim lItem As Double
    
    Me.ListBox2.Clear
    Me.ListBox2.ColumnCount = 3
    
    For lItem = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(lItem) = True Then
            Me.ListBox2.AddItem ListBox1.List(lItem, 0)
            ListBox2.List(Me.ListBox2.ListCount - 1, 1) = ListBox1.List(lItem, 1)
            ListBox2.List(Me.ListBox2.ListCount - 1, 2) = ListBox1.List(lItem, 2)
        End If
    Next

Segue anexo.

 
Postado : 20/01/2012 5:07 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

:o Muito bom José !!!

Realmente ficamos preso a lógica do exemplo, e que complicava muito mais. Acabei utilizando o Listview, pois o visual fica muito melhor. Tô quebrando a cabeça com ele para o retorno de umas pesquisas por várias planilhas, mas tô indo bem. Se precisar te chamo, viu.... :lol:

Brigadão mesmo. Abraço.

 
Postado : 21/01/2012 2:59 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

;)

Vários post's depois e o contador agarrou no 144.

 
Postado : 21/01/2012 3:05 pm