Macro lien hypertexte feuille

SAMWRC

XLDnaute Occasionnel
Bonjour à tous,

Sur une feuille de mon fichier, j'ai un lien hypertexte vers une autre feuille de ce même fichier. J'aimerais lancer ce lien hypertexte à partir d'une macro.

Code:
With ActiveSheet.Range("A1")
    If .Hyperlinks.Count > 0 Then .Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
End With

Cette macro marche lorsque le lien hypertexte pointe vers un autre fichier, mais en ce qui concerne une autre feuille du même fichier, ça ne marche plus ...

Je vous joint un fichier avec mon problème.

Une idée ?
Merci d'avance pour votre aide

Bonne journée
Sam
 

Pièces jointes

  • Macro lien hypertexte feuille.xlsm
    14.1 KB · Affichages: 88

JNP

XLDnaute Barbatruc
Re : Macro lien hypertexte feuille

Bonjour SamWRC :),
A tester
Code:
With ActiveSheet.Range("A1")
    If .Hyperlinks.Count > 0 Then
        With .Hyperlinks(1)
            If UBound(Split(.SubAddress, "\")) <> 0 Then
                .Follow NewWindow:=False, AddHistory:=True
            Else
                Sheets(Split(.SubAddress, "!")(0)).Select
                Range(Split(.SubAddress, "!")(1)).Select
            End If
        End With
    End If
End With
Bonne suite :cool:
 

SAMWRC

XLDnaute Occasionnel
Re : Macro lien hypertexte feuille

Bonjour JNP :),

Merci beaucoup pour ton aide. Ton code marche parfaitement :D
Je note juste que si il y a un espace dans le nom de la feuille de destination, le code retourne une erreur (cf. nouvelle pj). Une parade pour ce problème ? :confused:

Merci
 

Pièces jointes

  • Macro lien hypertexte feuille v2.xlsm
    14.9 KB · Affichages: 83

SAMWRC

XLDnaute Occasionnel
Re : Macro lien hypertexte feuille

J'ai trouvé une solution :

Code:
Sub Macro1()
With ActiveSheet.Range("A1")
    If .Hyperlinks.Count > 0 Then
        With .Hyperlinks(1)
            If UBound(Split(.SubAddress, "\")) <> 0 Then
                .Follow NewWindow:=False, AddHistory:=True
            Else
                Dim ws As String
                ws = Split(.SubAddress, "!")(0)
                If Left(ws, 1) = "'" Then ws = Right(Left(ws, Len(ws) - 1), Len(ws) - 2)
                Sheets(ws).Select
                Range(Split(.SubAddress, "!")(1)).Select
            End If
        End With
    End If
End With
End Sub

Ca a l'air de fonctionner. Merci encore JNP :)
 

JNP

XLDnaute Barbatruc
Re : Macro lien hypertexte feuille

Re :),
Effectivement, on évite en général les espaces dans les noms d'onglets :p,
Autre solution :
Code:
                Sheets(Replace(Split(.SubAddress, "!")(0), "'", "")).Select
                Range(Replace(Split(.SubAddress, "!")(1), "'", "")).Select
Bonne suite :cool:
 

job75

XLDnaute Barbatruc
Re : Macro lien hypertexte feuille

Bonjour SAMWRC, salut Jean-Noël :)

Autre solution :

Code:
On Error Resume Next
[A1].Hyperlinks(1).Follow
If ActiveWorkbook.Name = ThisWorkbook.Name Then _
  Application.Goto Evaluate([A1].Hyperlinks(1).SubAddress)
A+
 

Discussions similaires

Réponses
5
Affichages
214

Statistiques des forums

Discussions
312 234
Messages
2 086 468
Membres
103 226
dernier inscrit
smail12