| Pesquisar em todas as planilhas | |
|
|
Autor | Mensagem |
---|
celliusctba
Mensagens : 23 Data de inscrição : 17/10/2013
| Assunto: Pesquisar em todas as planilhas Qui 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! | |
|
| |
alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: Re: Pesquisar em todas as planilhas Qui 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 abixarhttp://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 | |
|
| |
celliusctba
Mensagens : 23 Data de inscrição : 17/10/2013
| Assunto: Sequencia! Sex 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! | |
|
| |
alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: Re: Pesquisar em todas as planilhas Sex 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 | |
|
| |
celliusctba
Mensagens : 23 Data de inscrição : 17/10/2013
| Assunto: Re: Pesquisar em todas as planilhas Sá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! | |
|
| |
alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: Re: Pesquisar em todas as planilhas Sá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 | |
|
| |
celliusctba
Mensagens : 23 Data de inscrição : 17/10/2013
| Assunto: Re: Pesquisar em todas as planilhas Sá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 É issso Aguardamos e abraços! | |
|
| |
alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: Re: Pesquisar em todas as planilhas Sá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 | |
|
| |
celliusctba
Mensagens : 23 Data de inscrição : 17/10/2013
| Assunto: Re: Pesquisar em todas as planilhas Seg 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!
| |
|
| |
alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: Re: Pesquisar em todas as planilhas Seg 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: | |
|
| |
celliusctba
Mensagens : 23 Data de inscrição : 17/10/2013
| Assunto: Re: Pesquisar em todas as planilhas Seg Out 21, 2013 6:31 pm | |
| Então..
Ele dá erro no "Call Create_File"
Diz que não foi definido valores (acho eu) | |
|
| |
alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: Re: Pesquisar em todas as planilhas Seg 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 | |
|
| |
celliusctba
Mensagens : 23 Data de inscrição : 17/10/2013
| Assunto: Re: Pesquisar em todas as planilhas Seg 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! | |
|
| |
alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: Re: Pesquisar em todas as planilhas Seg 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 | |
|
| |
celliusctba
Mensagens : 23 Data de inscrição : 17/10/2013
| Assunto: Re: Pesquisar em todas as planilhas Seg 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! | |
|
| |
alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: Re: Pesquisar em todas as planilhas Seg Out 21, 2013 10:01 pm | |
| Boa tarde!!
Lembre sempre de mandar o tipo de Erro, geralmente é um número.
Att | |
|
| |
Conteúdo patrocinado
| Assunto: Re: Pesquisar em todas as planilhas | |
| |
|
| |
| Pesquisar em todas as planilhas | |
|