FAQ Excel

FAQ ExcelConsultez toutes les FAQ
Nombre d'auteurs : 46, nombre de questions : 845, dernière mise à jour : 30 mars 2022
Sommaire→Les liens et liaisons→Les liens hypertextes- Comment ouvrir un document Word sur une page précise ?
- Comment ajouter un lien hypertexte ?
- Comment déclencher le lien hypertexte contenu dans une cellule ?
- Comment extraire les liens hypertextes ?
- Comment imprimer la page active et les tous les classeurs liés ?
- Comment créer un lien email dans une cellule ?
- Comment tester si l'hyperlien d'une cellule mène vers un fichier existant sur le PC ?
- Comment ouvrir l'explorateur Windows sur le répertoire contenant le classeur, sans macro ?
- Comment désactiver le formatage automatique des cellules en lien web ?
- Comment créer un lien hypertexte vers une feuille graphique ?
- Comment utiliser la fonction LIEN_HYPERTEXTE ?
- Comment remplacer un terme dans tous les liens d'une feuille ?
- Comment forcer l'affichage des liens entre feuilles en haut de la page ?
- Comment modifier le texte qui s'affiche dans la cellule, sans affecter le lien hypertexte ?
Ajoutez un signet dans le document Word, à l'emplacement souhaité, puis fermez le fichier.
Ensuite, lors de la création du lien hypertexte dans Excel, spécifiez le nom du signet à atteindre.
Exemple:
C:\Dossier\MonFichier.doc#NomDuSignet
Le document Word s'ouvrira directement à l'emplacement du signet lorsque vous cliquerez su le lien hypertexte.
La même opération, pour ouvrir un fichier Word par macro et atteindre un signet :
ThisWorkbook.FollowHyperlink "C:\Dossier\MonFichier.doc#NomDuSignet", , TrueOn peut ajouter un lien indifféremment à un objet ou à une plage.
Dim objLink As Hyperlink
Set objLink = ActiveSheet.Hyperlinks.Add(Range("F2"), "d:\user\tuto.xls")
With objLink
.SubAddress = "A1:C10"
.Follow NewWindow:=True
End WithCe code crée le lien est ouvre une nouvelle fenêtre contenant la cible. Astuce : Lorsqu'on modifie la cible d'un lien existant on ne modifie pas le texte du lien. Pour que celui-ci change, il faut modifier la propriété value de la cellule contenant le lien :
objLink.Address = "d:\jmarc.xls"
objLink.Range.Value = "d:\jmarc.xls"Sub Test()
DeclencheLien Range("A1")
End Sub
Sub DeclencheLien(Cellule As Range)
'Vérifie si la cellule contient un lien
If Cellule.Hyperlinks.Count = 0 Then
MsgBox "il n'y a pas de lien hypertexte dans la cellule " & Cellule.Address
Else
'Déclenche le lien
Cellule.Hyperlinks(1).Follow NewWindow:=True
End If
End Sub
La procédure suivante extrait les liens hypertextes contenus dans la colonne A.
Les adresses s'inscrivent à coté, dans la colonne B.
Sub ExtractionLiensHypertextes()
Dim Cell As Range
Dim Ligne As Integer
'Récupère le numéro de la dernière ligne non vide
Ligne = Columns(1).SpecialCells(xlCellTypeLastCell).Row
'Boucle sur les cellules de la colonne A
For Each Cell In Range("A1:A" & Ligne)
If Cell.Hyperlinks.Count > 0 Then _
Cell.Offset(0, 1) = Cell.Hyperlinks(1).Address
Next Cell
End Sub
Cette macro boucle sur les liens de la feuille active et ouvre le fichier lié s'il s'agit d'un classeur.
Chaque feuille de ce classeur est ensuite imprimée.
Sub imprimerPageActiveEt_Liensclasseurs()
Dim Lien As Hyperlink
Dim I As Byte
Application.ScreenUpdating = False
'Imprime la feuille active
ActiveSheet.PrintOut
'Boucle sur les liens de la feuille active
For Each Lien In ActiveSheet.Hyperlinks
'Vérifie si le lien correspond à un classeur
If Right(Range(Lien.Range.Address).Hyperlinks(1).Address, 4) = ".xls" Then
'Déclenche le lien pour ouvrir le classeur
Range(Lien.Range.Address).Hyperlinks(1).Follow NewWindow:=False
'Imprime le classeur
ActiveWorkbook.PrintOut
'Referme le classeur
ActiveWorkbook.Close
End If
Next
Application.ScreenUpdating = True
End Sub
Saisissez l'adresse de messagerie dans une cellule et appuyez sur la touche Entrée.
Le lien est créé automatiquement.
Si ce n'est pas le cas, faites un clic droit dans la cellule.
Sélectionnez l'option "Lien hypertexte" dans le menu contextuel.
Saisissez le mail dans le champ Adresse.
Cliquez sur le bouton OK pour valider.
(Le texte mailto: s'ajoute automatiquement lorsque vous saisissez
le symbole @.)
La même action par macro :
Sub CreationLienMail()
With ActiveSheet
.Range("A1") = "La description"
.Hyperlinks.Add .Range("A1"), Address:="mailto:mimi@mail.fr"
End With
End SubSub Test()
'Vérifie si le lien hypertexte contenu dans la cellule A1
'correspond à un fichier existant sur le PC.
'Renvoie Vrai ou Faux.
MsgBox VerifHyperlink(Range("A1"))
End Sub
Function VerifHyperlink(Cellule As Range) As Boolean
Dim Cible As String
'Vérifie si la cellule contient un lien hypertexte
If Cellule.Hyperlinks.Count = 0 Then
VerifHyperlink = False
Exit Function
End If
'Extrait l'adresse du lien
Cible = Cellule.Hyperlinks(1).Address
'Vérifie si le fichier existe.
'(Ne fonctionne pas pour les liens web).
If Dir(Cible) <> "" And Cible <> "" Then
VerifHyperlink = True
Else
VerifHyperlink = False
End If
End Function
Placez cette formule dans la cellule de votre choix.
Le classeur doit être préalablement sauvegardé pour que ça fonctionne.
=LIEN_HYPERTEXTE(GAUCHE(CELLULE("filename");CHERCHE("[";CELLULE("filename");1)-2);"Lien vers le répertoire")Lorsque vous saisissez des liens html ou des adresses mail dans une cellule, ils sont par défaut automatiquement transformés en lien cliquable.
Pour qu'Excel ne formate pas les cellules comme des liens web :
Utilisez le menu outils.
Options de correction automatique.
Pour la version Excel 2007 :
Cliquez sur le bouton "Office", puis sur le bouton "Options Excel".
Menu "Vérification".
Cliquez sur le bouton "Options de vérification automatique".
La boîte de dialogue "Correction automatique" s'affiche à l'écran.
Dans l'onglet "Mise en forme automatique au cours de la frappe", décochez l'option "Adresse internet et réseau avec des liens hypertexte".
Cliquez sur le bouton OK pour valider.
Désormais, les liens html et les adresses mails sont considérés comme de simples textes.
Ce n'est pas possible directement car une feuille graphique ne contient pas de cellule à lier.
Une solution de substitution consiste à créer le lien vers une cellule d'un autre onglet et cette cellule
contiendra le nom de la feuille graphique. Ensuite, dans le module objet de l'onglet contenant la cellule de
destination, ajoutez cette macro évènementielle :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Ch As Chart
If Not Intersect(Target, Range("A1")) Is Nothing Then
On Error Resume Next
Set Ch = Charts(Target.Value)
On Error GoTo 0
'Active le feuille graphique si elle existe.
If Not Ch Is Nothing Then Charts(Target.Value).Activate
End If
End SubLe lien va atteindre la cellule et l'évènement SelectionChange redirige automatiquement vers le graphique, dont le nom est saisi dans la cellule. Ici, le lien doit pointer vers la cellule A1.
Cette fonction permet d'ouvrir un autre fichier et/ou d'atteindre un emplacement particulier.
=LIEN_HYPERTEXTE("C:\dossier\test.pdf";"Cliquez ici !")
=LIEN_HYPERTEXTE("C:\dossier\NomClasseur.xls";"Cliquez ici !")
=LIEN_HYPERTEXTE("https://www.developpez.com/";"Cliquez ici !")
Vous pouvez indiquer un nom de serveur UNC :
=HYPERLINK("\\NomServeur\dossier\NomClasseur.xls";"Cliquez ici !")
Pour ouvrir un classeur et atteindre une cellule particulière :
=LIEN_HYPERTEXTE("C:\dossier\NomClasseur.xls#'Feuil1'!G50";"Cliquez ici !")
Pour atteindre une cellule ou une plage nommée :
=LIEN_HYPERTEXTE("[C:\dossier\NomClasseur.xls]NomTest";"Cliquez ici !")
Si vous souhaitez créer un lien hypertexte vers un emplacement précis dans un document Microsoft Word,
utilisez un signet pour définir cet emplacement. L'exemple suivant crée un lien hypertexte vers le signet "Signet1"
dans le document nommé monFichier.doc
=LIEN_HYPERTEXTE("C:\monFichier.doc#Signet1";"Cliquez ici")
Accéder à la cellule D10 dans la Feuil2, du même classeur :
=LIEN_HYPERTEXTE("[monClasseur]Feuil2!D10";"Mon lien hypertexte")
3 Remarques:
Même si vous restez dans le même classeur, précisez son nom.
Si le nom de la feuille contient un espace , le nom doit être encadré par des apostrophes :
=LIEN_HYPERTEXTE("[monClasseur.xls]'ma feuille'!D10";"Mon lien hypertexte")
Si le nom du classeur est amené à changer dans le temps vous pouvez utiliser :
=LIEN_HYPERTEXTE("["&STXT(CELLULE("nomfichier"); TROUVE("["; CELLULE("nomfichier"))+1;TROUVE("]"; CELLULE("nomfichier"))- TROUVE("[";
CELLULE("nomfichier"))-1)&"]'ma feuille'!D10";"Mon lien hypertexte")



