Notifications
Clear all

VBA –Localizar

27 Posts
1 Usuários
0 Reactions
8,127 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

People bom dia,

Tenho a seguinte macro conforme abaixo para localizar comandos em uma planilha, o meu problema é que esta macro somente localiza os dados na planilha "Detalhes da Fatura" e eu tenho uma planilha com várias abas (Jan/Fev /Março e etc) e gostaria que o botão localizar fizesse a pesquisa em todas as planilhas.
Alguém sabe como fazer?

Tks

Sub procura()

Dim numero_proforma As String

On Error GoTo trata_erro

Número_Proforma = InputBox("Informe Proforma a ser exibida")
'************************************************************************

Sheets("CAPA").Select
Sheets("Detalhes da Fatura").Select
Cells.Find(What:=Número_Proforma, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate

Exit Sub

trata_erro:
MsgBox "Número não encontrado"

End Sub

 
Postado : 26/05/2011 7:09 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 


Dayana, veja se desta forma atende o que pretende. Caso contrário, indique se ocorre algum erro ou qual o retorno não esperado.

Sub procura()

Dim Número_Proforma As String
Dim i As Integer
i=1

Número_Proforma = InputBox("Informe Proforma a ser exibida")
'************************************************************************
Do While i <= Sheets.Count
Sheets(i).Select
On Error Resume Next
Cells.Find(What:=Número_Proforma, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate

If ActiveCell.Value = Número_Proforma Then
Exit Sub
End If

i = i + 1
Loop

MsgBox "Número não encontrado"

End Sub

 
Postado : 26/05/2011 4:25 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Pessoal bom dia,

Estou tentando fazer uma macro com as seguintes características.
Ela deve buscar a informação digitada no Inputbox na planilha inteira, até aí a macro funciona conforme abaixo.
A minha grande dificuldade é a seguinte, o Inputbox tem as constantes ok e cancelar, qdo se clica ok ele faz a pesquisa e qdo clica em cancelar ele dá a msgbox "Fatura não encontrada", e aí está o grande erro, essa mensagem somente deveria aparecer se não fosse encontrado o referido texto na planilha e qdo o usuário clicasse em cancelar não deveria ocorrer nada mas ela acabe efetuando a pesquisa e dá a msgbox "Fatura não encontrada"

Alguém poderia me dizer onde estou errando?

Sub Buscar_Texto()
Dim x As Byte
Dim y As Byte
Dim nTexto As String

nTexto = Application.InputBox("Informe o número da fatura", "Pesquisa")

x = ActiveWorkbook.Worksheets.Count
For y = 1 To x
Sheets(y).Activate
Set nCell = Cells.Find(What:=nTexto)
If Not nCell Is Nothing Then
Cells.Find(What:=nTexto).Activate
GoTo fim
End If
Next
Sheets("CAPA").Activate
MsgBox "Fatura não encontrada"
fim:

Exit Sub

End Sub

 
Postado : 15/06/2011 6:48 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Retire apenas isso.

MsgBox "Fatura não encontrada"

Abraço

 
Postado : 15/06/2011 10:51 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Olá,

Mas, teria que fica assim:

Usuário clicou em ok:efetua a pesquisa, se achou a referência vai p/ a referência se não achou "Fatura não encontrada".

Usuário clicou em cancelar:MsgBox "Usuário clicou em cancelar pesquisa"

Help?

 
Postado : 15/06/2011 11:32 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 


Veja se desta forma atende:

...
nTexto = Application.InputBox("Informe o número da fatura", "Pesquisa")
If ntexto = False Then
Exit Sub
End If
...

 
Postado : 15/06/2011 4:32 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Olá Edson,

Obrigada, deu certo!

Mas como mulher nunca está satisfeita, ainda mais uma mulher que meche com excel,rsrs

Estou tentando nesta mesma macro, fazer a busca mais de uma vez, por ex.
Eu quero achar o número 150 na planilha, o número "150" está na aba "a" e aba "b", na macro como está hoje a pesquisa seria efetuada e acharia o 150 mais próximo ou seja na aba "a", mas eu gostaria de colocar uma macro que extendesse a pesquisa p/ ocorrer mais de uma vez.

Não sei se fui clara mas no resumo é fazer a pesquisa mais de uma vez (localizar próxima).
Não gostaria que vc colocasse a macro (pelo menos por enquanto) pois gosto de ir atrás e aprender,só gostaria de saber se é possível o que estou tentando fazer.

Obrigada,

 
Postado : 16/06/2011 1:11 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Dayana... é possível sim...!

Apenas não entendi se pretende que sejam listadas todas as ocorrências ou que apenas houvesse a possibilidade de "localizar próximo".

De qualquer forma, ambas as opções são possíveis...

 
Postado : 16/06/2011 1:18 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Oi Edson,

No caso quero apenas a possibilidade de "localizar próximo".

Obrigada pelo help, vou tentar e se não conseguir dou um grito,rsrsr

Abçs

 
Postado : 16/06/2011 1:34 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Olá pessoal boa tarde,

Tentei,pesquisei, mas não encontrei, sendo assim peço a ajuda de vcs.
;)
Na macro que criei para localizar, preciso que sejam listadas todas as ocorrências e não mais somente a possibilidade de "localizar próximo", sabem como fazer?

Tks

 
Postado : 26/08/2011 1:01 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Olá pessoal bom dia,

Tem alguém que sabe fazer para localizar todas as variáveis na planilha inteira?

Ah outra coisa, na macro que eu tenho para buscar texto, preciso fazer uma correção, em que ela busque não somente texte mas também pesquise números, ex.:EXP11225-11
A macro é a seguinte:
Sub Buscar_Texto()
Dim x As Byte
Dim y As Byte
Dim nTexto As Integer

On Error GoTo trataerro

nTexto = Application.InputBox("Informe o número da fatura", "Pesquisa")
If nTexto = False Then
Exit Sub
End If

x = ActiveWorkbook.Worksheets.Count
For y = 1 To x
Sheets(y).Activate
Set nCell = Cells.Find(What:=nTexto)
If nTexto = vbNullString Then
Exit Sub
End If
If Not nCell Is Nothing Then
Cells.Find(What:=nTexto).Activate
GoTo fim
End If
Next
Sheets("CAPA").Activate
MsgBox "Fatura não encontrada"
fim:

Exit Sub
trataerro:
If Err.Number = 13 Then
MsgBox "Digite o número"
End If

End Sub

Alguém poderia me indicar uma luz no fim do túnel?

Tks

 
Postado : 30/08/2011 6:04 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia.

Segue uma macro que localiza texto e numeros em planilha.

Sub PesquisaremVáriasPlanilhas1()
    Dim ws          As Worksheet
    Dim Pesquisa    As Variant
    Dim c           As Variant
    Dim Mensagem    As String
    Dim k           As Integer
    Pesquisa = Application.InputBox("Informe valor a ser pesquisado.", "Valor para pesquisa.")
    k = 0
    For Each ws In ThisWorkbook.Worksheets
    With ws.Cells
    Set c = .Find(Pesquisa, LookIn:=xlValues)
    If Not c Is Nothing Then
    firstAddress = c.Address
    Do
    Mensagem = Mensagem & c.Address & vbTab & ws.Name & vbLf
    k = k + 1
    Set c = .FindNext(c)
    Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
    End With
    Next ws
    If k = 0 Then
    MsgBox "Não foram encontradas ocorrências do valor ''" & Pesquisa & "'' nas planilhas desta pasta de trabalho"
    Else
    MsgBox "O valor pesquisado : ''" & Pesquisa & "'', foi localizado em :" & vbLf & Mensagem
    End If
    End Sub

Abraço.

 
Postado : 30/08/2011 6:52 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Olá,

Obrigada pelo retorno mas a macro não funcionou nem como número nem como texto ela localiza os dados na planilha.

Estou “matutando” p/ ver se acho uma solução mas está difícil...

 
Postado : 01/09/2011 10:50 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa Tarde Dayana.
Veja se Esta Macro atende sua Necessidade.

Sub Localiza()
total = Sheets.Count 'total de planilhas
achei = 0
codigo = InputBox("Digite o nome a ser procurado.", "LOCALIZAR")
If codigo = "" Then Exit Sub
For plan = 1 To total 'percorrer todas as planilhas
Sheets(plan).Select 'ativar planilha
Set celLocalizar = ActiveSheet.Columns.Find(codigo, LookAt:=xlWhole, LookIn:=xlValues)
If celLocalizar Is Nothing Then 'caso não encontrar o codigo
If plan = total And achei = 0 Then
Sheets(1).Select
MsgBox "O conteúdo " & codigo & " não foi encontrado em nenhuma planilha. "
End If
Else 'caso o codigo procurado tenha sido encontrado
celLocalizar.Select 'selecionar a célula onde foi encontrado
MsgBox codigo & " foi encontrado na célula " & celLocalizar.Address & ". Planilha " & plan
Sheets(plan).Select
achei = achei + 1
End If
Next plan
Sheets(1).Select
End Sub

Abraços.

 
Postado : 03/09/2011 2:03 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Olá,

Realmente não sei o que está acontecendo por que ainda aparece a mensagem que o conteúdo não foi encontrado....

 
Postado : 24/10/2011 7:27 am
Página 1 / 2