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 todosPrivate 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 todosSub 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....