Caros leitores, chego hoje ao capítulo final desta trilogia (risos).
Bem, para aqueles que ainda não leram os artigos anteriores, sintam-se a vontade. Acessem pelos links abaixo:
Parte 1 – Pesquisa Personalizada Simples
Parte 2 – Pesquisa Personalizada Simples – A Missão
Para concluir esta série de artigos sobre busca personalizada através de macro, vamos incrementar o código já disponibilizado com as funcionalidades de Adição de dados, Alteração de dados e Exclusão de dados. Esta tem sido uma grande solicitação dos leitores que atenderei com prazer.
Na verdade, o código inicial de pesquisa, que nada mais é que uma recuperação de dados. Ou seja, esta ação em um banco de dados chamamos de “seleção de dados”. E agora vamos incluir as ações de inserção, edição e exclusão de dados. Com isso, podemos resumir que estamos criando um simples controle de banco de dados.
É claro que, não chega nem perto de um gererenciador de banco de dados, mas, quebra o galho para pequenos projetos.
Aproveito a oportunidade para dizer que todos os códigos que disponibilizamos no site são, principalmente para fins educativos, ou seja, os exemplos dados aqui, são apenas exemplos para um maior e melhor entendimento dos leitores, que poderão adaptar o conhecimento adquirido aqui, em seus projetos.
Mas, vamos ao que interessa. Começemos a desenvolver.
Sugiro que baixem o arquivo de exemplo no link no final deste artigo, para que possam acompanhar com mais facilidade o assunto.
Eu indico um ótimo livro que aborda sobre este tema de maneira mais abrangente, inclusive, ensinando como criar um Sistema de Controle de Vendas de uma concessionária fictícia. O livro, Macros para Excel na Prática, pode ser encontrado clicando aqui.
No seu arquivo deve conter pelo menos uma planilha contendo os dados em formato de tabela de dados, ou seja, na primeira linha o cabeçalho das colunas, e nas linhas subsequentes as informações de registros. Apenas isso nesta planilha.
Deve conter também o formulário que será utilizado para a pesquisa e as alterações dos cadastros. (ver arquivo fonte)
A função de pesquisa está mantida como nos exemplos dos artigos anteriores. Foi adicionado um botão para cadastrar novos registros. Os novos registros serão adicionados na primeira linha livre após a última linha de dados já gravados na planilha base de dados.
A função de Alteração de dados, irá, com base no registro que retornou de uma pesquisa feita, efetuar a modificação inserida pelo usuário.
A função de exclusão irá eliminar a linha de registro do cadastro exibido na tela no momento da solicitação pelo usuário ao clicar no botão Excluir.
Funciona como uma tela de cadastro de qualquer programa de cadastros.
Abaixo disponibilizo o código do projeto.
Código do Formulário de Busca (frmBusca):
Public MatrizResultadosLinha As Variant
Public MatrizResultadosPlanilha As Variant
Public Total_Ocorrencias As Long
Public sCriterioDaBusca As String
Public sAcaoRequerida As String
Private Sub btn_Adicionar_Click()
'Definir a ação do comando
sAcaoRequerida = "Adicionar"
'Habilitar Botões Salvar/Cancelar
Call HabilitarControlesParaEdicao(True)
End Sub
Private Sub btn_Cancelar_Click()
'Definir a ação do comando
sAcaoRequerida = ""
'Habilitar Botões Salvar/Cancelar
Call HabilitarControlesParaEdicao(False)
'Recarrega os controles com os valores ativos na memória
Call SpinButton1_Change
txt_Procurar.Text = sCriterioDaBusca
End Sub
Private Sub btn_Editar_Click()
'Definir a ação do comando
sAcaoRequerida = "Editar"
'Habilitar Botões Salvar/Cancelar
Call HabilitarControlesParaEdicao(True)
End Sub
Private Sub btn_Excluir_Click()
Dim sLinha As Long
Dim iPlanilha As Integer
If MsgBox("Tem certeza que deseja eliminar este cadastro do sistema?", vbDefaultButton2 + vbQuestion + vbYesNo, Me.Caption) = vbYes Then
sLinha = MatrizResultadosLinha(SpinButton1.Value)
iPlanilha = MatrizResultadosPlanilha(SpinButton1.Value)
'Exclui a linha do registro
Sheets(iPlanilha).Rows(sLinha).Delete
'Salva o arquivo
ThisWorkbook.Save
'Recarrega os registros para o formulário
txt_Procurar.Text = sCriterioDaBusca
Call ProcuraPersonalizada(sCriterioDaBusca, ComboBox1.Text)
End If
End Sub
Private Sub btn_Procurar_Click()
If txt_Procurar.Text = "" Then
MsgBox "Digite um valor para a pesquisa"
Else
sCriterioDaBusca = txt_Procurar.Text
Call ProcuraPersonalizada(sCriterioDaBusca, ComboBox1.Text)
End If
End Sub
Private Sub btn_Salvar_Click()
Dim sLinha As Long
Dim iPlanilha As Integer
'Realiza a ação apropriada
Select Case sAcaoRequerida
Case "Adicionar"
With Sheets(Combo_OndeSalvar.Text)
sLinha = .Range("A1").SpecialCells(xlLastCell).Row + 1 'Pega a próxima linha vazia para cadastrar novo
'Grava os novos valores informados no formulário para a planilha base de dados
.Cells(sLinha, 1).Value = TextBox1.Text
.Cells(sLinha, 2).Value = TextBox2.Text
.Cells(sLinha, 3).Value = TextBox3.Text
.Cells(sLinha, 4).Value = TextBox4.Text
End With
Case "Editar"
sLinha = MatrizResultadosLinha(SpinButton1.Value)
iPlanilha = MatrizResultadosPlanilha(SpinButton1.Value)
With Sheets(iPlanilha)
'Atualiza os dados na linha de registro específica
.Cells(sLinha, 1).Value = TextBox1.Text
.Cells(sLinha, 2).Value = TextBox2.Text
.Cells(sLinha, 3).Value = TextBox3.Text
.Cells(sLinha, 4).Value = TextBox4.Text
End With
Case Else
Exit Sub
End Select
'Definir a ação do comando
sAcaoRequerida = ""
'Habilitar Botões Salvar/Cancelar
Call HabilitarControlesParaEdicao(False)
'Recarrega os valores da pesquisa para exibir no formulário
If sCriterioDaBusca <> "" Then
txt_Procurar.Text = sCriterioDaBusca
Call ProcuraPersonalizada(sCriterioDaBusca, ComboBox1.Text)
End If
'Salva o arquivo
ThisWorkbook.Save
End Sub
Private Sub SpinButton1_Change()
Dim sLinha As Long
Dim iPlanilha As Integer
Dim TotalOcorrencias As Long
If IsArray(MatrizResultadosLinha) Then 'Verifica se há informações de busca na matriz de resultados
'Se houver dados retornados da busca, então carrega no formulário
TotalOcorrencias = SpinButton1.Max + 1
sLinha = MatrizResultadosLinha(SpinButton1.Value)
iPlanilha = MatrizResultadosPlanilha(SpinButton1.Value)
Label_Registros_Contador.Caption = SpinButton1.Value + 1 & " de " & TotalOcorrencias
With Sheets(iPlanilha)
Label_PlanBase.Caption = "Em " & .Name
TextBox1.Text = .Cells(sLinha, 1).Value
TextBox2.Text = .Cells(sLinha, 2).Value
TextBox3.Text = .Cells(sLinha, 3).Value
TextBox4.Text = .Cells(sLinha, 4).Value
End With
End If
End Sub
Private Sub ProcuraPersonalizada(ByVal TermoPesquisado As String, ByVal sPesquisarNoCampo As String)
Dim Busca As Range
Dim Primeira_Ocorrencia As String
Dim ResultadosLinha As String
Dim ResultadosPlanilha As String
Dim sSearchInCol As String
Dim arrPesquisarNasPlanilhas As Variant
Dim i As Integer
'Define a Coluna onde a informação será pesquisada
sSearchInCol = ConfigColunas(sPesquisarNoCampo)
'Define as Planilhas onde a informação será pesquisada
arrPesquisarNasPlanilhas = ConfigPlanilhasBase
'Inicializa os resultados
ResultadosLinha = ""
ResultadosPlanilha = ""
MatrizResultadosLinha = ""
MatrizResultadosPlanilha = ""
'Executa a busca
For i = 0 To UBound(arrPesquisarNasPlanilhas)
With Sheets(arrPesquisarNasPlanilhas(i))
If sSearchInCol = "" Then
Set Busca = .Cells.Find(What:=TermoPesquisado, After:=.Range("A1"), LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
Else
Set Busca = .Range(sSearchInCol & ":" & sSearchInCol).Find( _
What:=TermoPesquisado, _
After:=.Range(sSearchInCol & "1"), _
LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
End If
'Caso tenha encontrado alguma ocorrência...
If Not Busca Is Nothing Then
Primeira_Ocorrencia = Busca.Address
ResultadosLinha = ResultadosLinha & IIf((Len(ResultadosLinha) > 0), ";", "") & Busca.Row 'Lista o primeiro resultado na variavel - linha da ocorrência
ResultadosPlanilha = ResultadosPlanilha & IIf((Len(ResultadosPlanilha) > 0), ";", "") & .Index 'Lista o primeiro resultado na variavel - planilha da ocorrência
'Neste loop, pesquisa todas as próximas ocorrências para
'o termo pesquisado
Do
If sSearchInCol = "" Then
Set Busca = .Cells.FindNext(After:=Busca)
Else
Set Busca = .Range(sSearchInCol & ":" & sSearchInCol).FindNext(After:=Busca)
End If
'Condicional para não listar o primeiro resultado
'pois já foi listado acima
If Not Busca.Address Like Primeira_Ocorrencia Then
ResultadosLinha = ResultadosLinha & ";" & Busca.Row
ResultadosPlanilha = ResultadosPlanilha & ";" & .Index
End If
Loop Until Busca.Address Like Primeira_Ocorrencia
End If
End With
Next i
If Len(ResultadosLinha) > 0 Then 'Se foram encontrados resultados
MatrizResultadosLinha = Split(ResultadosLinha, ";")
MatrizResultadosPlanilha = Split(ResultadosPlanilha, ";")
'Atualiza dados iniciais no formulário
SpinButton1.Max = UBound(MatrizResultadosLinha) 'Valor maximo do seletor de registros
'habilita o seletor de registro
SpinButton1.Enabled = True
'indicador do seletor de registros
Label_Registros_Contador.Caption = "1 de " & UBound(MatrizResultadosLinha) + 1
'Box com o conteudo encontrado
With Sheets(CInt(MatrizResultadosPlanilha(0)))
Label_PlanBase.Caption = "Em " & .Name
TextBox1.Text = .Cells(MatrizResultadosLinha(0), 1).Value
TextBox2.Text = .Cells(MatrizResultadosLinha(0), 2).Value
TextBox3.Text = .Cells(MatrizResultadosLinha(0), 3).Value
TextBox4.Text = .Cells(MatrizResultadosLinha(0), 4).Value
End With
btn_Editar.Enabled = True
btn_Excluir.Enabled = True
Else 'Caso nada tenha sido encontrado, exibe mensagem informativa
SpinButton1.Enabled = False 'desabilita o seletor de registros
btn_Editar.Enabled = False
btn_Excluir.Enabled = False
Label_Registros_Contador.Caption = "" 'zera os resultados encontrados
Label_PlanBase.Caption = ""
'limpa os campos do formulário
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
MsgBox "Nenhum resultado para '" & TermoPesquisado & "' foi encontrado."
End If
End Sub
Private Sub UserForm_Initialize()
SpinButton1.Enabled = False
btn_Editar.Enabled = False
btn_Excluir.Enabled = False
Combo_OndeSalvar.Visible = False
Label_OndeSalvar.Visible = False
Label_Registros_Contador.Caption = ""
Call ConfigurarListaDeCampos
End Sub
Sub ConfigurarListaDeCampos()
Dim arrPesquisarNasPlanilhas As Variant
Dim i As Integer
With ComboBox1
.Style = fmStyleDropDownList
.AddItem "Tudo" '<--- Esta é utilizada para definir quando pesquisar em toda a planilha
.AddItem "Nome"
.AddItem "Estado"
.AddItem "Função"
.AddItem "Status"
.ListIndex = 0
End With
With Combo_OndeSalvar
'Recupera as Planilhas que são base de dados
arrPesquisarNasPlanilhas = ConfigPlanilhasBase
.Style = fmStyleDropDownList
For i = 0 To UBound(arrPesquisarNasPlanilhas)
.AddItem arrPesquisarNasPlanilhas(i)
Next i
.ListIndex = 0
End With
End Sub
Function ConfigColunas(ByVal sNomeCampo As String) As String
Select Case sNomeCampo
Case "Nome"
ConfigColunas = "A"
Case "Estado"
ConfigColunas = "B"
Case "Função"
ConfigColunas = "C"
Case "Status"
ConfigColunas = "D"
Case Else '<--- Esta é utilizada para definir quando pesquisar em toda a planilha
ConfigColunas = ""
End Select
End Function
Function ConfigPlanilhasBase() As Variant
Dim sNomeDasPlanilhas As String
'Digite o nome das Planilhasonde os dados deverão ser procurados,
'separados por ponto-e-vírgula (;)
'
sNomeDasPlanilhas = "Plan1;PlanBase2" '<----- Informe as planilhas aqui
Do While (Right(sNomeDasPlanilhas, 1) = ";")
sNomeDasPlanilhas = Left(sNomeDasPlanilhas, Len(sNomeDasPlanilhas) - 1)
Loop
ConfigPlanilhasBase = Split(sNomeDasPlanilhas, ";")
End Function
Sub HabilitarControlesParaEdicao(ByVal bOpcao As Boolean)
'Habilitar Botões Salvar/Cancelar
btn_Salvar.Visible = bOpcao
btn_Cancelar.Visible = bOpcao
btn_Adicionar.Visible = Not (bOpcao)
btn_Editar.Visible = Not (bOpcao)
btn_Excluir.Visible = Not (bOpcao)
btn_Procurar.Enabled = Not (bOpcao)
txt_Procurar.Enabled = Not (bOpcao)
ComboBox1.Enabled = Not (bOpcao)
txt_Procurar.Value = ""
Label_Registros_Contador.Caption = ""
Label_PlanBase.Caption = ""
If bOpcao = False And IsArray(MatrizResultadosLinha) Then
SpinButton1.Enabled = True
Else
SpinButton1.Enabled = False
End If
'Liberar Campos para Edição.
TextBox1.Locked = Not (bOpcao)
TextBox2.Locked = Not (bOpcao)
TextBox3.Locked = Not (bOpcao)
TextBox4.Locked = Not (bOpcao)
'Limpar o conteúdo dos campos
If sAcaoRequerida <> "Editar" Then
TextBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
TextBox4.Value = ""
Combo_OndeSalvar.Visible = bOpcao
Label_OndeSalvar.Visible = bOpcao
End If
If bOpcao = True Then
TextBox1.SetFocus
End If
End Sub
Um abraço a todos.
Parabens Pelo Conteudo do seu Site, Simplesmente “FORMIDAVEL”
Agora eu gostaria de saber se exixte como montar a partir da pesquisa um relatório para ser impresso ou enviado por e-mail ou até mesmo ser salvo como uma pasta de trabalho.
Abraços e mais uma vez parabens pelo belissimo site
Marcos, obrigado.
Acredito que tudo é possível para quem tem uma boa lógica de programação e vontade de criar coisas legais.
Para criar um relatório utilizando a mesma estrutura desta pesquisa que criei aqui no site, basta apenas, você substituir a escrita dos resultados nos campos do formulário e montar uma rotina para que esses resultados sejam escritos em uma nova planilha.
Infelizmente, não posso fazer agora pra vc, mas vou acender a luz no fim do túnel pra vc (rsrs).
Faça uma estrutura de repetição (loop) com os valores iniciais e finais do SpinButton1 e readapte os comando da rotina SpinButton1_Change(), pois é onde contém as instruções para escrever os resultados no formulário. Ao invés de mandar escrever no form, instrua para escrever numa planilha.
Mais ou menos assim:
For i=SpinButton1.Min to SpinButton.Max
With Sheets(iPlanilha)
PlanilhaRelatorio.Cells(i,1) = .Cells(sLinha, 1).Value
PlanilhaRelatorio.Cells(i,2) = .Cells(sLinha, 2).Value
PlanilhaRelatorio.Cells(i,3) = .Cells(sLinha, 3).Value
PlanilhaRelatorio.Cells(i,4) = .Cells(sLinha, 4).Value
End With
Next i
Abç
Agradecer pelo ótimo trabalho , mas gostaria de colocar o resultado num ListView eu tente buscando os resultados assim
For i=SpinButton1.Min to SpinButton.Max
With Sheets(iPlanilha)
Set li = ListView1.ListItems.Add(Text:=Plan1.Cells(i, “a”).Value)
li.ListSubItems.Add Text:=Plan1.Cells(i, “b”).Value
li.ListSubItems.Add Text:=Plan1.Cells(i, “c”).Value
li.ListSubItems.Add Text:=Plan1.Cells(i, “d”).Value
li.ListSubItems.Add Text:=Plan1.Cells(i, “e”).Value
End With
Next i
Boa tarde, ultimamente estou tentando me aprofundar mais no excel e consequentemente na programação em VBA. Parabéns pelo ótimo conteúdo do site.
Estou com uma tremenda duvida e se puder me ajudar ficarei infinitamente grato.
Preciso criar uma macro digamos simples, poi quero expecificar em uma celula o nome da planilha e o código iria abrir a planilha do nome digitado.
EX:
Sub abrir_planilha()
Worksheets(Plan1).Activate
i = Range(“A1”)
Worksheets(i).Activate
End Sub
Porém o código não reconhece o que está digitado em A1 dentro de worksheets.????
Ta aí aguardo uma possível ajuda…
Anderson,
Você está errando aqui:
Worksheets(Plan1).Activate
Plan1 não é uma variável e sim o nome da planilha, ok?
Faça assim:
Worksheets(“Plan1”).Activate
Abç
Bom dia Reinaldo,
Puts, como sou burro, rsrsrs.
Acertei onde você indicou e deu certinho, obrigado pelo esclarecimento…
Abç.
Boa tarde Reinaldo,
Estou com mais um probleminha.
Tenho um código (achado na net), que me dá uma fórmula chamada procvvarios. O código é esse:
Option Explicit
Function PROCVVARIOS(NomePesquisa As String, IntervaloPesquisa As Range, IntervaloRetorno As Range, Ocorrencia As Integer)
Dim Nome
Dim k As Integer, i As Integer
Application.Volatile
k = 1
i = 1
For Each Nome In IntervaloPesquisa
If Nome = NomePesquisa Then
If k = Ocorrencia Then PROCVVARIOS = IntervaloRetorno(i, 1)
k = k + 1
End If
i = i + 1
Next Nome
End Function
Estou tentando usá-lo em outra aplicação do VBA:
Sub inserir_formula()
Dim mes As String
mes = Worksheets(“Plan1”).Range(“D1”)
Worksheets(“Plan1”).Range(“A1”).Formula = _
“=procvvarios(B1,mes &!C1:C6,mes &!C1:C6,_
Plan1!B2)”
End Sub
Obs. Worksheets(“Plan1”).Range(“D1”) = “Plan2”
Porém não está dando o caminho desejado em “…mes &!C1:C6…”
Será que você poderia me ajudar com mais essa duvida, irá me ajudar muito. Desde já agradeço sua atenção.
Anderson,
Sub inserir_formula()
Dim mes As String
mes = Worksheets(“Plan1”).Range(“D1”)
Worksheets(“Plan1”).Range(“A1”).Formula = _
“=procvvarios(B1,” & mes & “!C1:C6,” & mes & “!C1:C6,” _
& “Plan1!B2)”
End Sub
Explicando: Váriáveis não são interpretadas dentro de aspas!
Abç.
Reinaldo estou utilizando esta consulta em meus trabalhos e diga-se de passagem muito bem elaborada e muito bem explicada. uma duvida e se e possivel que a textbox retorne a cor da formatação da celula ? Grato.
Wilson,
Não sei bem o que deseja, mas, segue uma luz…
Adicione um TextBox5;
Acrescente a linha de código abaixo na chamada de evento Private Sub SpinButton1_Change():
TextBox5.BackColor = .Cells(sLinha, 1).Interior.Color
Espero que ajude.
Abç
Poxa cara, muito obrigado mesmo, não pude responder antes, mais sua ajuda, solucionou meus problemas. Flw até mais.
Bom dia, Reinaldo
A sua contribuiçao para os amantes do excel é indiscutivel.
A minha duvida: Preciso quebrar linhas e não estou conseguindo quando digito várias planilhas a ser procuradas, total de 50 plan, o underline da erro.
Só consigo se a linha não for quebrada, porém ficaria enorme.
Abraços
Sampaio
Sampaio,
Você está se referindo a esta linha?
sNomeDasPlanilhas = “Plan1;PlanBase2” ‘<—– Informe as planilhas aqui
Se for, voce pode fazer assim:
sNomeDasPlanilhas = "Plan1;Plan2;Plan3" _
& "Plan4;Plan5;Plan6;" _
& "Plan7;Plan8;Plan9;Plan10"
Espero que ajude.
Abç
—————————————————
Siga-nos no twitter: @exceldoseujeito
Bom dia, Reinaldo
Obrigado pelo retorno;
Agora aceitou o underline para quebrar as linhas do código, porém esta dando erro em tempo de execução ‘9’ subscrito fora do intervalo.
Segue o cód. com as lihas quebradas; obs. sem quebrar linha funciona normalmente.
sNomeDasPlanilhas = “Cliente RA00(1);Cliente RA00(2);Cliente RA00(3);Cliente RA00(4)” _
& “Cliente RA00(5);Cliente RA00(6);Cliente RA00(7);Cliente RA00(8);Cliente RA00(9)” _
& “Cliente RA0(10);Cliente RA00(11);Cliente RA00(12);Cliente RA00(13);Cliente RA00(14)” ‘With Sheets(arrPesquisarNasPlanilhas(i))
If sSearchInCol = “” Then
Abç
Sampaio
Sampaio,
Pelo que você escreveu, vi que faltam alguns “;” (ponto-e-vírgula) no final de cada linha, após o nome da última planilha da linha.
Faça:
sNomeDasPlanilhas = “Cliente RA00(1);Cliente RA00(2);Cliente RA00(3);Cliente RA00(4);” _
& “Cliente RA00(5);Cliente RA00(6);Cliente RA00(7);Cliente RA00(8);Cliente RA00(9);” _
& “Cliente RA0(10);Cliente RA00(11);Cliente RA00(12);Cliente RA00(13);Cliente RA00(14)”
Abç
—————————————————
Siga-nos no twitter: @exceldoseujeito
Obrigado Reinaldo, deu certo a quebra de linhas
Alias tenho um outro form que busca na planilha ativa, porém não consigo fazer buscar apenas na coluna “A”
Private Sub ProcuraPersonalizada(ByVal TermoPesquisado As String)
Dim Busca As Range
Dim Primeira_Ocorrencia As String
Dim Resultados As String
‘Executa a busca
Set Busca = ActiveSheet.Range(“A1:A765”).Find(What:=TermoPesquisado, After:=Range(“A1”), LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
‘Caso tenha encontrado alguma ocorrência…
If Not Busca Is Nothing Then
Primeira_Ocorrencia = Busca.Address
Resultados = Busca.Row ‘Lista o primeiro resultado na variavel
‘Neste loop, pesquisa todas as próximas ocorrências para
‘o termo pesquisado
Do
Set Busca = ActiveSheet.Cells.FindNext(After:=Busca)
‘Condicional para não listar o primeiro resultado
‘pois já foi listado acima
If Not Busca.Address Like Primeira_Ocorrencia Then
Resultados = Resultados & “;” & Busca.Row
End If
Loop Until Busca.Address Like Primeira_Ocorrencia
MatrizResultados = Split(Resultados, “;”)
‘Atualiza dados iniciais no formulário
SpinButton1.Max = UBound(MatrizResultados) ‘Valor maximo do seletor de registros
‘habilita o seletor de registro
SpinButton1.Enabled = True
‘indicador do seletor de registros
Label_Registros_Contador.Caption = “1 de ” & UBound(MatrizResultados) + 1
Abç
Sampaio
Neste artigo explico perfeitamente como fazer uma busca numa coluna específica.
Leia com atenção, baixe o exemplo e experimente.
Abç
—————————————————
Siga-nos no twitter: @exceldoseujeito
Obrigado, Reinaldo, deu tudo certo.
Parabéns pelo excelente trabalho!
Abçs
Sampaio
Muito obrigado professor Reinaldo Coral!
Gosto muito do MS Excel e fico feliz toda vez que encontro boa oportunidade de aprender mais sobre os assunto. Seu artigo é excelente!
Olá João.
Fico feliz pelo comentário.
Abç
Bom dia.
Reinaldo, Excelente trabalho!!
Adaptei seu código para uma planilha que uso, porém, gostaria que cada vez que apertasse o botão para mostra a próxima ocorrência, ele ativasse a célula com o conteúdo. Não estou conseguindo isso.
Tem como?
Grato,
Ops! Coloquei a pergunta no lugar errado. Era para a “Criando uma Pesquisa Personalizada Simples”. Que aliás, de simples não tem nada :-p
Abraço,
Ok.
Respondida.
https://www.exceldoseujeito.com.br/2012/08/24/excel-perguntas-e-respostas-1/comment-page-1/#comment-5464
https://www.exceldoseujeito.com.br/2012/08/24/excel-perguntas-e-respostas-1/comment-page-1/#comment-6409
Ok, Ulisses, tem como sim.
Eu já havia respondido isso aqui no site, veja:
https://www.exceldoseujeito.com.br/2012/08/24/excel-perguntas-e-respostas-1/comment-page-1/#comment-5464
https://www.exceldoseujeito.com.br/2012/08/24/excel-perguntas-e-respostas-1/comment-page-1/#comment-6409
Acho que vai ajudar.
Abç
Bah!
Alguém já disse que tu é o cara?
Valeu.
Abraço,
Valeu cara!