Notifications
Clear all

Erro cadastro de clientes

7 Posts
2 Usuários
0 Reactions
1,520 Visualizações
(@mdosmagos)
Posts: 78
Estimable Member
Topic starter
 

Boa noite!

Montei um cadastro de clientes conforme anexo, queria resolver um erro que acontece quando dou um duplo clique no lugar errado, no lugar marcado de vermelho na imagem. Eu precisaria de uma validação para que esse erro não ocorra.... tentei de tudo mais não consegui... Para simular o erro é somente dar um clique duplo no lugar marcado em vermelho na imagem....

Conto com a ajuda de vocês....

 
Postado : 24/04/2014 2:28 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite...

Deixa assim:

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
 
    If Me.ListBox1.ListIndex = 0 Then
    
    Application.ScreenUpdating = False
    
    Sheets("Clientes").Select
    Sheets("Clientes").Range("A" & Sheets("Pesquisa").Range("U" & ListBox1.ListIndex + 2)).Select
    Sheets("Orçamento").Select
    Sheets("Orçamento").Range("Y8").Select
    
    End If
    
End Sub

Qualquer coisa da o grito.
Abraço

 
Postado : 24/04/2014 3:02 pm
(@mdosmagos)
Posts: 78
Estimable Member
Topic starter
 

Alterando o código como você sugeriu eu só consigo dar um clique duplo no primeiro resultado da listbox, se aparecerem digamos 10 resultados, os outros 9 eu não poderei selecionar, somente quando filtrar até ficar na primeira linha, até consigo dar o clique duplo, mas ele não desencadeia nada.

 
Postado : 24/04/2014 3:47 pm
(@mdosmagos)
Posts: 78
Estimable Member
Topic starter
 

Segue o arquivo com sua sugestão, não acontece mais o erro, mas se na pesquisa aparecer 3 resultados eu só consigo selecionar o primeiro, pode testar nesse arquivo, abre a planilha, entre em clientes, na pesquisa coloque somente k, vai aparecer 3 resultados, se der um clique duplo no primeiro e clicar no botão com uma seta para a esquerda, ele vai levar os dados para o orçamento, mas se der um clique duplo no segundo ou terceiro resultado da pesquisa e clicar na seta para a esquerda, ele não leva os dados do cliente para o orçamento.

O que poderia ser?

 
Postado : 24/04/2014 5:47 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Veja se é isto:

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

    If ListBox1.ListIndex = -1 Then
        MsgBox "Selecione um item"
    
    Else
        Sheets("Clientes").Select
        Sheets("Clientes").Range("A" & Sheets("Pesquisa").Range("U" & ListBox1.ListIndex + 2)).Select
        Sheets("Orçamento").Select
        Sheets("Orçamento").Range("Y8").Select
        
        'Tira a Seleção do item selecionado
        Me.ListBox1.Selected(ListBox1.ListIndex) = False
    End If
    
    Application.ScreenUpdating = True
    
 End Sub

Uma dica quanto a utilização demasiada da propriedade Application.ScreenUpdating, sempre que iniciamos como FALSE devemos reverte-la a TRUE no final, veja que na rotina de Peqsuisa você já iniciou como FALSE, então ela ficara nesta condição até revertermos, e depois nas instruções do ListBox1_DblClick você colocou novamente, o que poderá acarretar alguns inconvenientes, então o correto é reverte-la ao final.

[]s

 
Postado : 24/04/2014 5:51 pm
(@mdosmagos)
Posts: 78
Estimable Member
Topic starter
 

Mauro Coutinho, era realmente isso que eu precisava, muito obrigado...
Já que mencionaste, sabe me dizer o que pode acarretar se eu não voltar para true? A planilha completa que tenho é bem extensa e usei muito esse comando. Vou repassar todos os códigos e voltar para true no final.

Bernardo, muito obrigado por sua ajuda.

 
Postado : 24/04/2014 7:49 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Mauro Coutinho, era realmente isso que eu precisava, muito obrigado...
Já que mencionaste, sabe me dizer o que pode acarretar se eu não voltar para true? A planilha completa que tenho é bem extensa e usei muito esse comando. Vou repassar todos os códigos e voltar para true no final.

Bernardo, muito obrigado por sua ajuda.

mdosmagos, nas versões anteriores a 2000 se não me engano, praticamente tinhamos de reverter a condição para evitar problemas, apos esta versão parece-me que ela retorna como verdadeira ao final da execução por padrão, mas não é por este motivo que devemos de deixar de reverte-la, em rotinas simples geralmente não temos problemas, mas quando se trata de diversas rotinas em que em boa parte é efetuada chamada a outras rotinas isto pode se tornar um inconveniente, eu ia criar um exemplo, mas o tópico abaixo ja temos um exemplo tipico da não reversão, muitos utilizam a propriedade somente para evitar aquelas atualizações horriveis de tela quando seleciona-se varias abas, só que as vezes temos problema.
Veja o tópico abaixo, acredito que entenderá melhor.

Macro deixou de funcionar
viewtopic.php?f=10&t=2658

[]s

 
Postado : 25/04/2014 7:47 am