Ir ao conteúdo
  • Cadastre-se

Filtrar uma planilha através de um hiperlink clicado em outra planilha.


klebson00

Posts recomendados

Oi, klebson00,

Talvez, a única forma seria com VBA.

Com VBA, acredito que existem duas maneiras para realizar o procedimento.

Antes de qualquer coisa, o hiperlink deve referenciar a planilha de cursos realizados.

Caso o hiperlink seja adicionado nome por nome, a solução abaixo pode ser adotada.

Na Plan1, adicione:


Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
With Plan2
.Range("A3:G3").AutoFilter 3, Target.Range.Value
End With
End Sub

Abaixo, solução no caso do hiperlink ser adicionado de uma só vez em todos os nomes (um único hiperlink).

Na Plan1, adicione:


Dim empregado As String

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
With Plan2
.Range("A3:G3").AutoFilter 3, empregado
End With
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim empregadoAnterior As String
empregadoAnterior = empregado
On Error Resume Next
empregado = Target.Value
If Not Err = 0 Then
empregado = empregadoAnterior
End If
End Sub

E, no workbook:


Private Sub Workbook_Open()
Plan1.Range("A1").Activate
End Sub

Alterei a planilha, adicionando a solução da segunda alternativa citada, e fiz o upload em http://www.sendspace.com/file/btw99w.

Link para o comentário
Compartilhar em outros sites

Vinibpeixoto, muito Obrigado!

Não iria chegar a esta conclusão onde você conseguiu. \o/

Dá tudo certinho, no entanto quando clico em algum hiperlink e fecho a planilha, quando abro novamente a planilha mostra uma janela:

"Erro em tempo de execução '1004':

O Método Activate da classe Range falhou."

Depois de alguns testes, para não aparecer esta mensagem de novo, devo, quando terminar (antes de fechar a planilha) "desfiltrar" (Dados -> Limpar) a planilha e assim fechar a planilha como todo.

Como é um dos meus primeiros contatos em Macro e VBA, utilizei a opção Grava Macro, para fazer os seguintes passos: Limpar Dados da planilha B e voltar para planilha A. Logo após, inserir um botão na Planilha B e atribuir a ela o macro.

Deste modo fecho a planilha e quando abro novamente não aparece mais a janela.

Bom... é uma solução que conseguir fazer na minha limitação (ainda) em macro. hehe

Vinibpeixoto, posso utilizar isso?

Vocês teriam alguma outra sugestão?

Segue a planilha feita por Vinibpeixoto com a inclusão do botão que citei acima.

http://www.sendspace.com/file/9d7vec

Muito bom poder aprender sobre VGA/Macro.

Obrigado por vocês estarem me proporcionando isso.

Link para o comentário
Compartilhar em outros sites

Klebson00, verifiquei o problema e percebi que, na verdade, o erro ocorria devido ao código existente no workbook.

Todas as vezes que o arquivo é aberto, é selecionado a célula A1 da planilha "relação". No entanto, caso o arquivo fosse salvo com a planilha "cursos realizados" ativa, a linha de código não conseguia localizar a célula A1 da planilha que não estava ativa.

Alterei o código do workbook e o problema foi resolvido.


Private Sub Workbook_Open()
With Plan1
.Activate
.Range("A1").Activate
End With
End Sub

O arquivo atualizado está em http://www.sendspace.com/file/qmlsyg.

Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois...

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...