Ir para conteúdo
Fórum Script Brasil
  • 0

Não consigo acionar um hiperlink relativo em minha planilha com macro


Paris Anderson

Pergunta

Boa tarde

Desenvolvi uma planilha que gera um hiper link relativo (link para uma célula em outra aba da planilha em célula especifica), dependendo de um texto em um célula a frente do hiper link

exemplo : celula do link = HIPERLINK(CÉL("conteúdo";D77);"VISESCVISTA") / celula do endereço interno: =TEXTO(E77;) / texto base do hiperlink inteno em E77(#'ARQUIVO'!F13)

TENTEI GRAVA UMA MACRO PARA CLICAR NO HIPERLINK, MAS SEMPRE O RESULTADO DELA SAI COMO HIPERLINK FIXO (MESMO COM REFERENCIAS RELATIVAS), desta forma o objetivo era pular de célula em célula dependendo da informação contida no endereço da célula E77 (GERADA POR EQUAÇÃO) E acionando o link POSICIONAL NA CÉLULA DO HIPERLINK.

Esta funcionando para usar manualmente, mas como a planilha tem mais se 10000 itens fica dificil deixar isso manual, tem que ser automatizado. Tentei acionamento com alguns códigos de VBA que encontrei de hiperlinks de macro e simuladores de mouse duplo click na celula do link, mas sempre dá erro no GOTO.

alguém poderia me ajudar ?

 

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Boa tarde @Paris Anderson

Bem por cima da sua ideia fiz esse código:

Sub AdcionarHiperlinkDinamico()
Dim x As Long
Dim linhaAtual As Long
Dim linhaFinal As Long
Dim textoAtual As String

linhaAtual = ActiveCell.Row
linhaFinal = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row
For x = linhaAtual To linhaFinal

    textoAtual = IIf(Trim(Cells(x, "A").Text) = "", "Link", Cells(x, "A").Text)
    Cells(x, "A").Select
    ActiveSheet.Hyperlinks.Add _
        Anchor:=Selection, _
        Address:="", _
        SubAddress:="[Pasta2]Planilha1!A" & x, _
        TextToDisplay:=textoAtual
        
Next x


End Sub

 

Link para o comentário
Compartilhar em outros sites

  • 0

Desculpe, tentei o dia inteiro e não consegui de forma nenhuma fazer funcionar o script que enviou.

o minha questão é que tenho um link pronto e não consigo acionar ele por macro

até gerar link diferentes consigo, não consigo rodar uma rotina em macro que click no link produzido 

pela função hiperlink e que o execute para outra aba da planilha aberta.

Achei ate script que abre navegador com endereço de navegador que abre o chrome com pagina específica,

mas que acione um link como se fosse uma mão clicando nele.... nenhum funcionou.....

Link para o comentário
Compartilhar em outros sites

  • 0

Boa Tarde;

A questão é a seguinte, quando executo os passos manualmente, as variáveis que formam o link variam sempre, possibilitando assim que a cada cópia executada, ocorra com a colagem em um novo endereço apropriado e também diferente.   

Porém ao gravar as macros, os "clicks" nos links se formam de forma fixa, gravando sempre o mesmo valor para o "salto", independente das variáveis que formam o link. 

Creio que a solução seja armazenar o endereço do link, gerado pela equação, numa variável de VBA , em seguida carrega-la num link gerado por VBA que receberá o endereço variável. 

No passo seguinte seria o acionamento do link, também por VBA, desta forma o endereço variável irá ser executado, não de forma fixa, mas como endereço variável. O problema é o método de execução do link de VBA [sei não se deve usar address diretamente e sim subaddress para executar link externo de planilha, o método de acionamento não deve ser follow e sim Hyperlinks.Add Anchor].  Tentei várias vezes inserir o link em uma variável de VBA e sempre está dando erro, talvez seja o endereço de referência que esteja errado para execução do VBA, cheguei a conseguir abrir um navegador com link específico num script que encontrei na internet, porém não consegui executar hiperlink para a aba lateral com algum endereço útil.

 

Resumindo, não sei fazer.... creio que tenho a idéias de como resolver, mas falta conhecimento em VBA para executar o meu pensamento.

SCRIPTS.jpg

Link para o comentário
Compartilhar em outros sites

  • 0

Boa noite;

Com muito custo consegui fazer uma adaptação ao que me propunha a fazer, deixei células com espaço vago na planilhas, gravei links fixos para cada planilha numa estrutura de repetição (IF), carreguei uma variável global para armazenar a informação da aba e outra para a informação da linha para a planilha que seria direcionada. Estando na planilha escolhida, resolvi o problema da linha gerando um link no VBA utilizando a variável exportada em um célula para gerar um link momentâneo e em seguida acionando o link de imediato.   Estava tendo problema em acionar um link já existente, o script que achei consegue abrir desde que o link tenha sido gerado pelo VBA anteriormente, deve ser um problema de reconhecimento de link e referência, mas deu certo:

Sub autojumperCABE()
'
' autopulo
'

'

Dim autolink As String
Dim texto As String
Dim hyper As String

'Compor o valor de hyper para ser o valor de A1 mais "!A1"
hyper = "CABE!H" & Range("Q1")
'Defini o texto como sendo o valor de B1
texto = Range("N1").Value
'Mostra como exemplo como ficou o valor composto de hyper
Range("M1").Value = hyper
'Aplicar a Hyperlink a célula B1
Range("K1").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
        hyper, TextToDisplay:="texto"

Range("K1").Select
    Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
    
End Sub

 

Agradeço ajuda e o apoio

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...