Fórum Excel Bácico, Avançado e Vba
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Fórum Excel Bácico, Avançado e Vba

Este fórum é destina a usuário de Excel, que queiram compartilhar informações a básicas, avançadas e programação em VBA...
 
InícioInício  Últimas imagensÚltimas imagens  ProcurarProcurar  RegistarRegistar  Entrar  

 

 Pesquisar em todas as planilhas

Ir para baixo 
2 participantes
AutorMensagem
celliusctba




Mensagens : 23
Data de inscrição : 17/10/2013

Pesquisar em todas as planilhas Empty
MensagemAssunto: Pesquisar em todas as planilhas   Pesquisar em todas as planilhas EmptyQui Out 17, 2013 5:50 pm

Bom dia,

Gostaria de uma ajuda neste sentido; como há alguns experts no forum, creio que trarão rapidamente as informações com a resposta.
Tenho uma planilha, de cadastro de clientes feita em vba, funciona bem, porem quero que uma planilha seja, uma guia 2013, outra 2014, e assim por diante, por hora a pesquisa e recuperação de dados funciona apenas na planilha ativa, não procura noutras e traz os dados, por isso se alguém souber implementar e mudar o código um pouco, desde já agradeço:


Private Sub cmdDocumento_Click()
'Verificar se foi digitado no campo Documento o número do CPF
If txtCPF.Text = "" Then
MsgBox "Pesquisar pelo Número de CPF"
txtCPF.SetFocus
GoTo Linha1
End If
With Worksheets("2013").Range("A:A")
Set c = .Find(txtCPF.Value, LookIn:=xlValues, LookAt:=xlPart)
If Not c Is Nothing Then
c.Activate
txtCPF.Value = c.Value
txtNome.Value = c.Offset(0, 1).Value
txtEndereco.Value = c.Offset(0, 2).Value
cboEstado.Value = c.Offset(0, 3).Value
cboCidade.Value = c.Offset(0, 4).Value
txtTelefone.Value = c.Offset(0, 5).Value
txtEmail.Value = c.Offset(0, 6).Value

End If
End With
Linha1:
End With
End Sub



Então a base da alteração é essa:

With Worksheets("2013").Range("A:A")

Preciso que ele entenda em pesquisar 2013, 2014, 2015 etc por hora está fazendo a pesquisa apenas nela mesma, desde já agradeço e aguardo um retorno.

Obrigado!
Ir para o topo Ir para baixo
alexandrevba

alexandrevba


Mensagens : 1820
Data de inscrição : 13/07/2011
Localização : Serra - ES

Pesquisar em todas as planilhas Empty
MensagemAssunto: Re: Pesquisar em todas as planilhas   Pesquisar em todas as planilhas EmptyQui Out 17, 2013 7:19 pm

Boa tarde!!

Aqui tem exatamente o que precisa
http://www.excelcampus.com/tools/find-all-vba-form-for-excel/

Aqui tem o arquivo que deve abixar
http://www.excelcampus.com/filedownload/Find%20All%20VBA%20Form%20-%20All%20Worksheets.xls


Veja mais
Código:
    Option Explicit


    Public MyVal As String

    Sub SuperFIND()
    'Author:    Jerry Beaucaire
    'Date:      8/13/2010
    'Summary:  Searches all sheets for any text string, activates when found
    Dim ws      As Worksheet
    Dim vFIND  As Range

    StartOver:
    MyVal = Application.InputBox("Digite o nome", "Procura em todas as Planilha", MyVal, Type:=2)
    If MyVal = "Falso" Then Exit Sub
    On Error Resume Next

        For Each ws In Worksheets
            Set vFIND = ws.Cells.Find(MyVal, LookIn:=xlValues, LookAt:=xlPart)
            If Not vFIND Is Nothing Then
                ws.Activate
                vFIND.Select
                Set vFIND = Nothing
                Exit Sub
            End If
        Next ws
     
    MsgBox "Não foi encontrado"
    GoTo StartOver

    End Sub
Att
Ir para o topo Ir para baixo
celliusctba




Mensagens : 23
Data de inscrição : 17/10/2013

Pesquisar em todas as planilhas Empty
MensagemAssunto: Sequencia!   Pesquisar em todas as planilhas EmptySex Out 18, 2013 1:34 pm

Olá, se não fosse pedir muito e já sendo, será Alexandrevba que você não conseguiria adaptar com o meu código este que me passou, pois não tive muito êxito...


Obrigado!
Ir para o topo Ir para baixo
alexandrevba

alexandrevba


Mensagens : 1820
Data de inscrição : 13/07/2011
Localização : Serra - ES

Pesquisar em todas as planilhas Empty
MensagemAssunto: Re: Pesquisar em todas as planilhas   Pesquisar em todas as planilhas EmptySex Out 18, 2013 2:25 pm

Bom dia!!

Eu não garanto que será rápido.

Mande seu arquivo modelo, poste o em site gratuito como sendspace ou outros e poste o link aqui.

Att
Ir para o topo Ir para baixo
celliusctba




Mensagens : 23
Data de inscrição : 17/10/2013

Pesquisar em todas as planilhas Empty
MensagemAssunto: Re: Pesquisar em todas as planilhas   Pesquisar em todas as planilhas EmptySáb Out 19, 2013 3:11 pm

sendspace.com/file/yyifmj


Está aí Alexandre,

Creio que tire de letra, basicamente creio eu, é alterar o código do botão "Pesquisar" adaptando com aquele que passou (buscando em todas as guias), vai ajudar muita gente aí...



Muito Obrigado e aguardamos!


Abraços!
Ir para o topo Ir para baixo
alexandrevba

alexandrevba


Mensagens : 1820
Data de inscrição : 13/07/2011
Localização : Serra - ES

Pesquisar em todas as planilhas Empty
MensagemAssunto: Re: Pesquisar em todas as planilhas   Pesquisar em todas as planilhas EmptySáb Out 19, 2013 5:34 pm

Bom dia!!

O que deve acontecer, caso tenha o mesmo CPF em duas ou em 3 guias??

Att
Ir para o topo Ir para baixo
celliusctba




Mensagens : 23
Data de inscrição : 17/10/2013

Pesquisar em todas as planilhas Empty
MensagemAssunto: Re: Pesquisar em todas as planilhas   Pesquisar em todas as planilhas EmptySáb Out 19, 2013 6:13 pm

Olá Alexandre,


Então, se tiver o mesmo não tem problema, é um registro diário, pode ter duplicidade...

Na realidade a pesquisa deve ser feita em todas as planilhas (não só 2013) com ajuda do teu outro código, e trazer todos dados vinculados ao cpf, como nome, telefone, etc



Smile

É issso

Aguardamos e abraços!
Ir para o topo Ir para baixo
alexandrevba

alexandrevba


Mensagens : 1820
Data de inscrição : 13/07/2011
Localização : Serra - ES

Pesquisar em todas as planilhas Empty
MensagemAssunto: Re: Pesquisar em todas as planilhas   Pesquisar em todas as planilhas EmptySáb Out 19, 2013 10:12 pm

Boa tarde!!

Tente...
Código:

Private Sub cmdPequisar_Click()

For Each ws In ThisWorkbook.Worksheets(Array("2013", "2014", "2015"))
  'With ws.UsedRange

        With ws.Columns(1)
            Set c = .Find(txtCPF.Value, .Cells(.Cells.Count), xlValues, xlPart)

If Not c Is Nothing Then

txtCPF.Value = c.Value
txtNome.Value = c.Offset(0, 1).Value
txtEndereco.Value = c.Offset(0, 2).Value
cboEstado.Value = c.Offset(0, 3).Value
cboCidade.Value = c.Offset(0, 4).Value
txtTelefone.Value = c.Offset(0, 5).Value
txtEmail.Value = c.Offset(0, 6).Value
txtNascimento.Value = c.Offset(0, 7).Value


If c.Offset(0, 8) = "Masculino" Then
OptionButton1.Value = True
Else
OptionButton2.Value = True
End If
Else
MsgBox "Cliente não encontrado!"
End If
End With
Linha1:
Next
End Sub
Ir para o topo Ir para baixo
celliusctba




Mensagens : 23
Data de inscrição : 17/10/2013

Pesquisar em todas as planilhas Empty
MensagemAssunto: Re: Pesquisar em todas as planilhas   Pesquisar em todas as planilhas EmptySeg Out 21, 2013 5:39 pm

Show de bola, testei e tá rodando, ainda tenho que dar um jeito pois sempre grava na planilha de 2013, mesmo eu estando na 2014 ou 2015, mas daí me viro...



E só pra abusar mais um pouco, existe a forma de enviar por e-mail, sem passar pelo autolook a planilha usada? Testei vários comandos mas nunca deu certo de verdade, gostaria de inserir um botão, se tiver um código já pronto me ajudaria, o e-mail é do gmail!



E MAIS UMA VEZ MUITO OBRIGADO, VC É FERA!


Ir para o topo Ir para baixo
alexandrevba

alexandrevba


Mensagens : 1820
Data de inscrição : 13/07/2011
Localização : Serra - ES

Pesquisar em todas as planilhas Empty
MensagemAssunto: Re: Pesquisar em todas as planilhas   Pesquisar em todas as planilhas EmptySeg Out 21, 2013 6:20 pm

Boa tarde!!
Tente adptar.
Tudo sobre Email, você encontra aqui:
http://www.rondebruin.nl/win/section1.htm
Leia também:
http://www.makeuseof.com/tag/send-emails-excel-vba/
Código:
Sub TenteAdptar()
    Dim iMsg As Object
    Dim iConf As Object
    Dim strbody As String
    Dim Flds As Variant

    Set iMsg = CreateObject("CDO.Message")
    Set iConf = CreateObject("CDO.Configuration")

    iConf.Load -1    '
    Set Flds = iConf.Fields
    With Flds
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "*************@gmail.com"
        .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "*********"
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"

        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
        .Update
    End With

    With Sheets("Sheet1")
    strbody = "Assunto:" & vbNewLine & vbNewLine & _
        .Range("A1")
    End With

    With iMsg
        Set .Configuration = iConf
        .To = "**********@gmail.com"
        .CC = ""
        .BCC = ""
        .From = """"" <*********@gmail.com>"
        .Subject = "Important message"
        .TextBody = strbody
        .Send
    End With


End Sub
Código:
Private Sub btnSubmit_Click()
Dim iMsg As Object
Dim iConf As Object
Dim strbody As String
Dim NewFile As String
Dim Flds As Variant
   
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
   
    Set iMsg = CreateObject("CDO.Message")
    Set iConf = CreateObject("CDO.Configuration")
    'Copia o atual Livro (xls) para outro com formatos e valores.
    'Está nova copia será anexada
    Call Create_File

    iConf.Load -1
    Set Flds = iConf.Fields
    With Flds
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "our work server name"
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
        '.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
        '.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
        .Update
    End With
   
    With iMsg
        Set .Configuration = iConf
        .To = "Endereço Para:"
        .CC = ""
        .BCC = ""
        .From = "Endereço De:"
        .Subject = "Assunto - " & Range("C5").Value
        .AddAttachment "C:\NomeArquivo.xls" '<- local e nome do arquivo
        '.TextBody = strbody
        .Send
    End With
   
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub
Att:bounce: 
Ir para o topo Ir para baixo
celliusctba




Mensagens : 23
Data de inscrição : 17/10/2013

Pesquisar em todas as planilhas Empty
MensagemAssunto: Re: Pesquisar em todas as planilhas   Pesquisar em todas as planilhas EmptySeg Out 21, 2013 6:31 pm

Então..


Ele dá erro no "Call Create_File"


Diz que não foi definido valores (acho eu)
Ir para o topo Ir para baixo
alexandrevba

alexandrevba


Mensagens : 1820
Data de inscrição : 13/07/2011
Localização : Serra - ES

Pesquisar em todas as planilhas Empty
MensagemAssunto: Re: Pesquisar em todas as planilhas   Pesquisar em todas as planilhas EmptySeg Out 21, 2013 6:35 pm

Boa tarde!!

O que eu mandei é apenas uma parte do caminho, você terá que fazer algumas alterações.
Eu não sei se você leu o link, mas caso não tenha terá que adicionar a biblioteca CDO.

Citação :
"When Excel opens up the VBA editor, you’re going to need to add the reference to the CDO library. You can access this in the Tools menu, and then scroll down the list until you find “Microsoft CDO for Windows 2000 Library“. Select the checkbox and click OK
Att
Ir para o topo Ir para baixo
celliusctba




Mensagens : 23
Data de inscrição : 17/10/2013

Pesquisar em todas as planilhas Empty
MensagemAssunto: Re: Pesquisar em todas as planilhas   Pesquisar em todas as planilhas EmptySeg Out 21, 2013 6:38 pm

Eu vi sim, adicionei nas opções...


Ainda sim dá o erro como mencionei, pois é terei que dar uma mexida pois ao menos aqui não teve jeito...



De qualquer forma um abraço e muito obrigado!
Ir para o topo Ir para baixo
alexandrevba

alexandrevba


Mensagens : 1820
Data de inscrição : 13/07/2011
Localização : Serra - ES

Pesquisar em todas as planilhas Empty
MensagemAssunto: Re: Pesquisar em todas as planilhas   Pesquisar em todas as planilhas EmptySeg Out 21, 2013 6:47 pm

Boa tarde!!

Se você observar o comando CALL, está chamando uma macro para criar arquivos, você tem duas opção, ou cria a sua própria macro para criar arquivos ou use dentro do corpo de código para enviar Email.

tente tirar a linha "Call Create_File" lembre-se não criará o arquivo, para isso você terá que ter uma macro para tal.

Obs: eu não testei nenhum dos códigos

Att
Ir para o topo Ir para baixo
celliusctba




Mensagens : 23
Data de inscrição : 17/10/2013

Pesquisar em todas as planilhas Empty
MensagemAssunto: Re: Pesquisar em todas as planilhas   Pesquisar em todas as planilhas EmptySeg Out 21, 2013 9:33 pm

.Send
End With

Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub


Ele dá erro na depuração bem no comando .Send


De qualquer forma tô tentando, rs


Obrigado!
Ir para o topo Ir para baixo
alexandrevba

alexandrevba


Mensagens : 1820
Data de inscrição : 13/07/2011
Localização : Serra - ES

Pesquisar em todas as planilhas Empty
MensagemAssunto: Re: Pesquisar em todas as planilhas   Pesquisar em todas as planilhas EmptySeg Out 21, 2013 10:01 pm

Boa tarde!!

Lembre sempre de mandar o tipo de Erro, geralmente é um número.

Att
Ir para o topo Ir para baixo
Conteúdo patrocinado





Pesquisar em todas as planilhas Empty
MensagemAssunto: Re: Pesquisar em todas as planilhas   Pesquisar em todas as planilhas Empty

Ir para o topo Ir para baixo
 
Pesquisar em todas as planilhas
Ir para o topo 
Página 1 de 1
 Tópicos semelhantes
-
» Botão Pesquisar - VBA/Excel
» Pesquisar em intervalo dinâmico com 2 critérios
» PESQUISAR EM GUIAS DE ACORDO COM STATUS E FORNECEDORES CADASTRADOS
» Listar o nome de todas as Tabelas Dinâmicas do arquivo
» Classifica baseado na coluna A de todas as guias usando um loop com AutoFiltro

Permissões neste sub-fórumNão podes responder a tópicos
Fórum Excel Bácico, Avançado e Vba :: Avançado/VBA :: Excel Avançado/VBA-
Ir para: