J'ai beaucoup de mal avec la syntaxe Hyperlinks.Add
En effet, j'ai sur une feuille nommée "Liste" une liste en colonne A reprenant l'ensemble des feuilles de mon classeur :
Feuil1, Feuil2, Feuil3 , etc...
Je souhaiterais donc écrire une macro qui me permette d'automatiser les liens hypertextes entre la cellule contenant "Feuil1" en A12 et l'onglet Feuil1, etc.
Je vous joins un fichier si quelqu'un pouvait m'aider .
Re : Liens hypertextes automatiques entre les cellules et les onglets de même nom
Bonjour, steuf999, le Forum,
Un essai, avec le code ci-après logé dans le module de l'onglet "Liste".
Code:
Private Sub Worksheet_SelectionChange(ByVal c As Range)
If c.Column <> 1 Or c = "" Then Exit Sub
On Error GoTo fin
Sheets(c.Text).Activate
Exit Sub
fin: MsgBox "Onglet inexistant !"
End Sub
Re : Liens hypertextes automatiques entre les cellules et les onglets de même nom
Bonjour Stéphanie, Chère 00, le Forum,
Si j'ai bien compris la demande, voici une solution globale:
Code:
Sub Macro3()
Dim Cel As Range
With Feuil4
.Hyperlinks.Delete
For Each Cel In .Columns(1).SpecialCells(xlCellTypeConstants)
.Hyperlinks.Add Anchor:=Range(Cel.Address), Address:="", SubAddress:= _
Cel.Value & "!A1", TextToDisplay:=Cel.Value
Next
End With
End Sub
Si j'ai bien compris la demande, voici une solution globale:
Code:
Sub Macro3()
Dim Cel As Range
With Feuil4
.Hyperlinks.Delete
For Each Cel In .Columns(1).SpecialCells(xlCellTypeConstants)
.Hyperlinks.Add Anchor:=Range(Cel.Address), Address:="", SubAddress:= _
Cel.Value & "!A1", TextToDisplay:=Cel.Value
Next
End With
End Sub
Merci pour cette autre solution ! Par contre il faudrait que les liens se créent à partir de la ligne 12 et non pas au dessus car j'ai d'autre données... comment le spécifier ??
Il suffit de modifier la plage de recherche comme ceci:
Code:
Dim Cel As Range
With Feuil4
.Hyperlinks.Delete
For Each Cel In .Range("A12:A" & Rows.Count).SpecialCells(xlCellTypeConstants)
.Hyperlinks.Add Anchor:=Range(Cel.Address), Address:="", SubAddress:= _
Cel.Value & "!A1", TextToDisplay:=Cel.Value
Next
End With
End Sub
Cordialement.
PS: Bises à toi, DoubleZero, si tu passes par ici.
Il suffit de modifier la plage de recherche comme ceci:
Code:
Dim Cel As Range
With Feuil4
.Hyperlinks.Delete
For Each Cel In .Range("A12:A" & Rows.Count).SpecialCells(xlCellTypeConstants)
.Hyperlinks.Add Anchor:=Range(Cel.Address), Address:="", SubAddress:= _
Cel.Value & "!A1", TextToDisplay:=Cel.Value
Next
End With
End Sub
Cordialement.
PS: Bises à toi, DoubleZero, si tu passes par ici.
Mais ca ne marche pas ! J'ai une erreur d'exécution 5 donc je crois qu'il doit y avoir un truc pas dans la bonne langue mais je ne sais pas où! Un peu d'aide ?