none
Procurar valor em vários arquivos ABERTOS! RRS feed

  • Pergunta

  • Olá pessoal,

    Desde ja agradeço a ajuda de vc's!

    Estou tentando montar um sistema de busca por vários arquivos de excel, consegui montar algo parecido mas só consigo percorrer as ABAS de um arquivo!

    Alguém tem alguma idéia de como posso fazer para percorrer todos os arquivos abertos e todas as abas também ?

    Abaixo segue meu código que faz uma varredura em todas as abas do arquivo que uso.

    Sub ProcuraTD()
        Dim oqquero As Variant, continua As Variant
        Dim rngFound As Range, wk As Worksheet
        
        oqquero = Application.InputBox(Prompt:="O Que está procurando?", _
            Title:="Find", Type:=2)
        If oqquero = False Or oqquero = "" Then Exit Sub
        
        For Each wk In ThisWorkbook.Sheets
            wk.Activate
            Set rngFound = wk.Cells.Find(What:=oqquero, LookIn:=xlValues, Lookat:=xlWhole)
            If Not rngFound Is Nothing Then
                rngFound.Select
                continua = MsgBox("Encontrei na aba " & wk.Name & _
                    " continuar com a pesquisa?", vbYesNo)
                If continua = vbNo Then Sheets("Plan1").Activate: Exit Sub
            Else
                continua = MsgBox("Não encontrei na aba " & wk.Name & _
                    " continuar com a pesquisa?", vbYesNo)
                If continua = vbNo Then Sheets("Plan1").Activate: Exit Sub
            End If
        Next wk
        Sheets(1).Activate
    End Sub

    Abraços a todos

    Tiago

    quinta-feira, 26 de novembro de 2015 12:54

Respostas

  • Option Explicit
    
    Sub ProcuraTD()
        Dim oqquero As Variant, continua As Variant
        Dim rngFound As Range, wk As Worksheet
        Dim iWorkbook As Workbook
        
        oqquero = Application.InputBox(Prompt:="O Que está procurando?", _
            Title:="Find", Type:=2)
        If oqquero = False Or oqquero = "" Then Exit Sub
        
        For Each iWorkbook In Workbooks
            For Each wk In iWorkbook.Sheets
                wk.Activate
                Set rngFound = wk.Cells.Find(What:=oqquero, LookIn:=xlValues, Lookat:=xlWhole)
                If Not rngFound Is Nothing Then
                    rngFound.Select
                    continua = MsgBox("Encontrei na aba " & wk.Name & _
                        " continuar com a pesquisa?", vbYesNo)
                    If continua = vbNo Then Sheets("Plan1").Activate: Exit Sub
                Else
                    continua = MsgBox("Não encontrei na aba " & wk.Name & _
                        " continuar com a pesquisa?", vbYesNo)
                    If continua = vbNo Then Sheets("Plan1").Activate: Exit Sub
                End If
            Next wk
        Next iWorkbook
        Sheets(1).Activate
    End Sub
    


    http://www.ambienteoffice.com.br - http://www.clarian.com.br

    • Sugerido como Resposta André Santo domingo, 29 de novembro de 2015 11:59
    • Marcado como Resposta Tiago N Mesquita terça-feira, 24 de maio de 2016 21:21
    quinta-feira, 26 de novembro de 2015 21:50
    Moderador

Todas as Respostas

  • Bom dia, não consegui entender o que você deseja achar. Mas lhe aconselho a criar uma condição na qual se o dado não for encontrado na aba1, ele percorra á aba2. Utilize o ElseIf.


    Att, Frank Washington

    quinta-feira, 26 de novembro de 2015 13:16
  • Olá Frank,

    Na verdade quero procurar por qualquer coisa que esteja dentro de uma planilha excel.

    Porém esse valor procurado possa estar em qualquer aba e em mais de 30 arquivos diferentes e até mesmo ser repetido.

    O que vc sugeriu o meu exemplo ja faz. Este percorre toda as abas da planilha com a macro aberta procurando pelo valor, só me falta fazer esta pular de arquivo ou ter alguma outra form ade procurar!

    Abraços

    Tiago


    quinta-feira, 26 de novembro de 2015 13:29
  • Option Explicit
    
    Sub ProcuraTD()
        Dim oqquero As Variant, continua As Variant
        Dim rngFound As Range, wk As Worksheet
        Dim iWorkbook As Workbook
        
        oqquero = Application.InputBox(Prompt:="O Que está procurando?", _
            Title:="Find", Type:=2)
        If oqquero = False Or oqquero = "" Then Exit Sub
        
        For Each iWorkbook In Workbooks
            For Each wk In iWorkbook.Sheets
                wk.Activate
                Set rngFound = wk.Cells.Find(What:=oqquero, LookIn:=xlValues, Lookat:=xlWhole)
                If Not rngFound Is Nothing Then
                    rngFound.Select
                    continua = MsgBox("Encontrei na aba " & wk.Name & _
                        " continuar com a pesquisa?", vbYesNo)
                    If continua = vbNo Then Sheets("Plan1").Activate: Exit Sub
                Else
                    continua = MsgBox("Não encontrei na aba " & wk.Name & _
                        " continuar com a pesquisa?", vbYesNo)
                    If continua = vbNo Then Sheets("Plan1").Activate: Exit Sub
                End If
            Next wk
        Next iWorkbook
        Sheets(1).Activate
    End Sub
    


    http://www.ambienteoffice.com.br - http://www.clarian.com.br

    • Sugerido como Resposta André Santo domingo, 29 de novembro de 2015 11:59
    • Marcado como Resposta Tiago N Mesquita terça-feira, 24 de maio de 2016 21:21
    quinta-feira, 26 de novembro de 2015 21:50
    Moderador