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

Controle ListView

Dúvidas gerais sobre Excel
Avatar do usuário
joseA
Jedi
Jedi
Mensagens: 1048
Registrado em: Qui Out 22, 2009 7:22 am
Localização: Cel. Fabriciano - MG

Re: Controle ListView

Mensagem por joseA »

Guilherme,

No seu arquivo não tem o Controle Listbox funcionando como vc disse. Seria importante p/ verificar a funcionalidade.


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.


Guima
Consultor
Consultor
Mensagens: 242
Registrado em: Sex Out 30, 2009 6:10 am

Re: Controle ListView

Mensagem por Guima »

José,

Essa parte abaixo é a que faz a rotina pelo LISTBOX.

Código: Selecionar todos

' TRANSFERE DADOS DO LISTBOX PARA A PLAN BDCQE
'For Y = 0 To ListBox1.ListCount - 1

    'Set r = Sheets("BDCQE").Range("C2:C5000").Find(What:=Val(ListBox1.List(Y, 0)), 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) - ListBox1.List(Y, 2)
    'End If
'Next
Esta parte fica na rotina chamada FINALIZA. Lembro que esse trecho está com " ' " por isso ele aparece como comentário, retire as " ' " ai ela volta a funcionar você entenderá o processo realizado pelo LISTBOX.

Outra coisa que esqueci de comentar, mas acredito que vc já deve ter percebido; ambos os arquivos precisam estar abertos, ok ?


Avatar do usuário
joseA
Jedi
Jedi
Mensagens: 1048
Registrado em: Qui Out 22, 2009 7:22 am
Localização: Cel. Fabriciano - MG

Re: Controle ListView

Mensagem por joseA »

Vc enviou apenas um arquivo e não tem Listbox.


Guima
Consultor
Consultor
Mensagens: 242
Registrado em: Sex Out 30, 2009 6:10 am

Re: Controle ListView

Mensagem por Guima »

Putz...

não repara José.. é a idade..rs

segue novamente

[REMOVIDO]


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
Mauro Coutinho
Jedi
Jedi
Mensagens: 1561
Registrado em: Sáb Mar 13, 2010 8:10 pm
Localização: São José dos Pinhais - Pr

Re: Controle ListView

Mensagem por Mauro Coutinho »

José, sinceramente, cheguei a fazer uma busca no forun e não havia localizado esse seu tópico, alias esse sistema de busca do site é esquisito, as vezes não da retorno algum dizendo que é necessário digitar um minimo de caracteres e retorna erro.

Mas deixando isso de lado, o que tenho a dizer é que seu modelo ja percorreu a Net, pois peguei o que postei no Forum do Yahoo, (http://br.groups.yahoo.com/group/ExcelBr/message/77238), a não ser que você participa no Forum com o pseudonimo de Ricardo Scacabarossi, rsrsrsrsrsrsrs, e como não vi nenhum crédito na mesma não dava para identificar no post.

abraços e parabens pelo modelo.


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

Re: Controle ListView

Mensagem por webmaster »

Desculpe pessoal,

Ainda estou aprendendo a administrar o fórum. Acabei de indexar a busca. Vamos ver se melhora.

Abraços


Avatar do usuário
Mauro Coutinho
Jedi
Jedi
Mensagens: 1561
Registrado em: Sáb Mar 13, 2010 8:10 pm
Localização: São José dos Pinhais - Pr

Re: Controle ListView

Mensagem por Mauro Coutinho »

Tomas, quem tem de se desculpar sou eu, não foi minha intenção repreender, eu devia ter postado em PVT, e eu não sabia que tinha como configurar ou indexar o sistema de Busca.
Guima, quanto a questão da rotina de pesquisar os Itens do Listview, postei aquele exemplo do José somente para você analizar a parte que ele usou para localizar o Item selecionado no Listview que faz a procura na planilha e altera, seria só para uma possível adaptação.
Agora se entendi, você não quer usar a opção de Item selecionado e sim, que seja pesquisado todos os Valores da Coluna 1 do Listview com os Valores que constam na Coluna B da Planilha e se localizado efetuar suas Operações, se for isso veja se a rotina abaixo ajuda.

Código: Selecionar todos

Sub PesquisaTeste()
 Dim i As Integer, j As Integer
   
    For i = 1 To ListView1.ListItems.Count
            
            With Worksheets(1).Range("B2:B10") 'Seta o Range
            
            Set r = .Find(ListView1.ListItems(i).ListSubItems(1), LookIn:=xlValues)'Procura Item Col1 Lstview
            
            End With
        If Not (r Is Nothing) Then
           
                'Valor da Coluna 1
                MsgBox "Vlr procurado Col1 = " & r
                                
                'Valor da Coluna 3
                MsgBox "Vlr Col3 Listview = " & ListView1.ListItems(i).ListSubItems(2).Text
                                
                'Aqui coloca seu procedimento
                MsgBox "Vlr Localizado - Coloque aqui seu procedimento"
            
            Else
                MsgBox "Vlr Não Localizado naPlanilha"
        End If
    Next i
    
End Sub
Associe a um botão e faça os testes.

abraços


Guima
Consultor
Consultor
Mensagens: 242
Registrado em: Sex Out 30, 2009 6:10 am

Re: Controle ListView

Mensagem por Guima »

Tomas,

Absolutamente você não nos deve desculpas, o fórum está ótimo, e volto a afirmar (sem demagogia)que é hoje o melhor fórum que participo. Quanto as pesquisas infelizmente é um problema comum a medida que o número de informações cresce, mas se há meios para resolver ainda melhor !!!


Mauro,
Agora se entendi, você não quer usar a opção de Item selecionado e sim, que seja pesquisado todos os Valores da Coluna 1 do Listview com os Valores que constam na Coluna B da Planilha e se localizado efetuar suas Operações, se for isso veja se a rotina abaixo ajuda.
É isso mesmo, só que a procura deve ser feita na coluna C. Tomei a liberdade de TENTAR adaptar seu código de acordo com minhas necessidades. Ele compilou sem problemas, porém não conseguiu identificar o valor da coluna do LISTVIEW na planilha. E com isso só exibe a mensagem que consta na rotina: " MsgBox "Vlr Não Localizado naPlanilha". Veja como ficou toda a rotina após adaptá-la:

Código: Selecionar todos

 Dim a As Double, b As Double
   
    For a = 1 To LISTA.ListItems.Count
            
            With Workbooks("MIG.xls").Sheets("BDCQE").Range("C2:C5000") 'Seta o Range
            
            Set r = .Find(LISTA.ListItems(a).ListSubItems(1), LookIn:=xlValues) 'Procura Item Col1 Lstview
            
            End With
        If Not (r Is Nothing) Then
           
                'Valor da Coluna 1
                MsgBox "Vlr procurado Col1 = " & r
                                
                'Valor da Coluna 3
                MsgBox "Vlr Col3 Listview = " & LISTA.ListItems(a).ListSubItems(3).TEXT
                                
                'Aqui coloca seu procedimento
                Sheets("BDCQE").Range("E" & r.Row) = Sheets("BDCQE").Range("E" & r.Row) - (LISTA.ListItems(a).SubItems(3))  ' fiquei na dúvida se aqui eu devia associar "r" com Row
            
            Else
                MsgBox "Vlr Não Localizado naPlanilha"
        End If
    Next a  
Mais uma vez obrigado


Avatar do usuário
Mauro Coutinho
Jedi
Jedi
Mensagens: 1561
Registrado em: Sáb Mar 13, 2010 8:10 pm
Localização: São José dos Pinhais - Pr

Re: Controle ListView

Mensagem por Mauro Coutinho »

Guima, procure fazer um teste em uma outra planilha utilizando o F8 ou um Debug.Print para analizar os valores que estão sendo retornados, outra coisa altere o Double para Integer e veja se resolve, estou terminando um exemplo da forma que fiz e ja posto aqui.

[]s


Guima
Consultor
Consultor
Mensagens: 242
Registrado em: Sex Out 30, 2009 6:10 am

Re: Controle ListView

Mensagem por Guima »

Mauro,

Eu não sei se o LISTVIEW inicia com 1 ou 0, mas no caso do LISTBOX ele inicia por zero, certo. De qualquer forma testei iniciando com 0 e não obtive sucesso.
Guima, procure fazer um teste em uma outra planilha utilizando o F8 ou um Debug.Print para analizar os valores que estão sendo retornados, outra coisa altere o Double para Integer e veja se resolve, estou terminando um exemplo da forma que fiz e ja posto aqui.
Já havia feito o teste com Integer e até utilizando Variant, mas a resposta foi a mesma. Quanto ao F8, nessa linha

Código: Selecionar todos

:  Set r = .Find(LISTA.ListItems(a).ListSubItems(1), LookIn:=xlValues) 'Procura Item Col1 Lstview
ele não esta identificando um número, mas um nome. E após percorre-la já salta para o ELSE, pois não encontrou valor semelhante na coluna C da planilha.

Valeu Mauro


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