Página 1 de 1

Pesquisa por nome em uma tabela

Enviado: 10 Ago 2018 às 20:07
por vilc
tenho uma tabela com vários nomes, e na célula B4 digito o nome do cliente e faz o filtro normalmente.
consegui atraves do codigo abaixo.
como faço que para quando não achar o cliente ele me dar a Mensagem de cliente não encontrado


Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$B$4" Then
If Target.Value <> "" Then
ActiveSheet.Range("$B$7:$C$7").AutoFilter Field:=2, Criteria1:="=" & Target.Value & "*", _
Operator:=xlAnd


Else


ActiveSheet.Range("$B$7:$C$7").AutoFilter Field:=2


End If
End If
Application.EnableEvents = True


End Sub

Re: Pesquisa por nome em uma tabela

Enviado: 10 Ago 2018 às 21:43
por osvaldomp
Código: Selecionar todos
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address <> "$B$4" Then Exit Sub
  Me.AutoFilterMode = False
  If Target.Value = "" Then Exit Sub
  If Application.CountIf([C:C], Target.Value & "*") = 0 Then MsgBox "CLIENTE NÃO ENCONTRADO": Exit Sub
   Me.Range("$B$7:$C$7").AutoFilter Field:=2, Criteria1:="=" & Target.Value & "*", _
    Operator:=xlAnd
End Sub
dica - desnecessário e desaconselhável o uso de Application.EnableEvents = False/True neste código (somente para filtrar)

Re: Pesquisa por nome em uma tabela

Enviado: 10 Ago 2018 às 22:37
por vilc
funcionou perfeito amigo, e se eu quisesse colocar esse código num botão como ficaria...

Pesquisa por nome em uma tabela

Enviado: 10 Ago 2018 às 23:24
por vilc
e depois da mensagem apagar o conteúdo da célula B4....desde já agradeço

Re: Pesquisa por nome em uma tabela

Enviado: 11 Ago 2018 às 00:39
por osvaldomp
vilc escreveu:... e se eu quisesse colocar esse código num botão como ficaria...
Um código colocado em um botão não vai funcionar (e ainda o tamanho do botão terá que ser grandão pra receber o código ... ) ;)
Mas ... se você quiser pode colocar o código abaixo em um botão, porém coloque-o também em um módulo comum (Módulo1, Módulo2, ...) e vincule-o a um botão (pode ser o mesmo botão grandão em que você quer colocar o código) ? :|
Código: Selecionar todos
Sub AplicaFiltro()
 ActiveSheet.AutoFilterMode = False
 If [B4] = "" Then Exit Sub
 If Application.CountIf([C:C], [B4] & "*") = 0 Then MsgBox "CLIENTE NÃO ENCONTRADO": [B4] = "": Exit Sub
  ActiveSheet.Range("$B$7:$C$7").AutoFilter Field:=2, Criteria1:="=" & [B4] & "*", _
   Operator:=xlAnd
End Sub

Re: Pesquisa por nome em uma tabela

Enviado: 11 Ago 2018 às 12:33
por vilc
boa tarde amigo, muito obrigado funcionou perfeito....