Ce didacticiel VBA couvre les différentes façons de travailler avec des liens hypertexte dans VBA.
Liens hypertexte VBA
Avec VBA, vous pouvez ajouter des hyperliens, supprimer des hyperliens, créer des e-mails à l'aide d'hyperliens et ouvrir des fichiers à l'aide d'hyperliens dans VBA.
Ajouter un lien hypertexte avec VBA
La méthode Hyperlinks.Add ajoute un lien hypertexte à une cellule à l'aide de VBA.
Le code suivant ajoutera un lien hypertexte à la cellule A1 :
123 | Sub AddHyperlinkToCell()ActiveSheet.Hyperlinks.Add Range ("A1"), Adresse :="https://www.automateexcel.com/excel/"Fin du sous-marin |
Le résultat est:
Ajouter du texte à afficher avec VBA
Vous pouvez ajouter un texte convivial et soigné à afficher à votre lien hypertexte avec VBA. Si vous avez utilisé la fonctionnalité de feuille de calcul, vous insérez un lien hypertexte, puis ajoutez un texte à afficher dans la boîte de dialogue fournie.
Le code ci-dessous montre comment ajouter du texte à afficher à votre lien hypertexte à l'aide de VBA :
123 | Sub TextToDisplayForHyperlink()ActiveSheet.Hyperlinks.Add Range ("A1"), Adresse :="https://www.automateexcel.com/excel/", TextToDisplay :="Automate Excel"Fin du sous-marin |
Le résultat est:
Ajouter une info-bulle avec VBA
Vous pouvez ajouter une info-bulle à votre lien hypertexte que le spectateur verra lorsqu'il survolera le lien.
Le code ci-dessous montre comment ajouter une info-bulle à votre lien hypertexte à l'aide de VBA :
123 | Sous-info-bullePourHyperlien()ActiveSheet.Hyperlinks.Add Range ("A1"), Address:="https://www.automateexcel.com/excel/", TextToDisplay:="Automate Excel", ScreenTip:="Ceci est le lien pour Automate Excel"Fin du sous-marin |
Le résultat est:
Supprimer un lien hypertexte avec VBA
La méthode Hyperlinks.Delete peut être utilisée pour supprimer un lien hypertexte d'une cellule.
Le code suivant supprimera le lien hypertexte de la cellule A1 et le texte de la cellule.
Notez que la simple suppression du lien hypertexte ne supprime pas le texte lui-même, c'est pourquoi si vous souhaitez supprimer le texte, vous devez également utiliser la méthode Clear.
1234 | Sub DeleteHyperlinkinCell()Plage("A1").Hyperliens.SupprimerPlage ("A1"). EffacerFin du sous-marin |
Supprimer tous les hyperliens dans une feuille de calcul
Vous pouvez également supprimer tous les liens hypertexte de votre feuille de calcul à l'aide de la méthode Hyperlinks.Delete.
Le code suivant supprimera tous les liens hypertexte de la première feuille de calcul de votre classeur :
123 | Sub RemoveAllHyperlinksInASheet()Ce classeur.Feuilles(1).Hyperliens.SupprimerFin du sous-marin |
Suivre un lien hypertexte de site Web à l'aide de VBA
Le code suivant vous permet d'ouvrir une adresse de site Web, dans une nouvelle fenêtre de votre navigateur en utilisant la méthode FollowHyperlink dans votre classeur :
123 | Sub FollowHyperlinkForWebsite()ActiveWorkbook.FollowHyperlink Address:="https://www.automateexcel.com/excel", NewWindow:=TrueFin du sous-marin |
Suivez un lien hypertexte vers un dossier sur votre lecteur
Le code suivant ouvrira un dossier appelé ExcelFiles sur le bureau à l'aide de la méthode FollowHyperlink :
123 | Sub FollowHyperlinkForFolderOnDrive()ActiveWorkbook.FollowHyperlink Address:="C:\Desktop\ExcelFiles"Fin du sous-marin |
Suivre un lien hypertexte vers un fichier sur votre disque
Le code suivant ouvrira un fichier Excel appelé WorkbookOne dans le dossier appelé ExcelFiles sur le bureau à l'aide de la méthode FollowHyperlink :
123 | Sub FollowHyperlinkForFile()ActiveWorkbook.FollowHyperlink Address:="C:\Desktop\ExcelFiles\WorkbookOne.xlsx", NewWindow:=TrueFin du sous-marin |
Aller à une cellule dans une autre feuille dans le même classeur
Vous pouvez ajouter un lien hypertexte vers une cellule d'une feuille qui vous amène à une autre feuille, dans le même classeur avec VBA. Disons que vous êtes sur Sheet1, cellule A1 de votre classeur et que vous souhaitez insérer un lien hypertexte vers Sheet2, cellule B2 du même classeur, vous pouvez utiliser la propriété SubAddress pour ce faire.
Le code suivant montre comment procéder :
123 | Sub GoToAnotherCellInAnotherSheetInTheSameWorkbook()ActiveSheet.Hyperlinks.Add Range("A1"), Address:="", SubAddress:="'" & Sheet2.Name & "'!B2", TextToDisplay:="Cliquez ici pour accéder à Sheet2, cellule B2 du même classeur"Fin du sous-marin |
Afficher tous les hyperliens dans une feuille de calcul
Vous pouvez accéder à la collection d'hyperliens et afficher tous les hyperliens de votre feuille de calcul dans le Fenêtre intermédiaire dans l'éditeur VBA. Vous devez d'abord appuyer sur CTRL+G sur votre clavier ou allez sur Affichage>Fenêtre intermédiaire dans l'éditeur VBE, pour afficher la fenêtre intermédiaire.
Le code suivant montre comment afficher les liens hypertexte dans votre feuille de calcul dans la fenêtre intermédiaire :
1234567891011 | Sub ShowAllTheHyperlinksInTheWorksheet()Dim ws As Feuille de calculDéfinir ws = ThisWorkbook.Sheets(1)Pour chaque lien dans ws.HyperlinksDebug.Print lnk.AddressLien suivantFin du sous-marin |
Les résultats sont affichés dans la fenêtre intermédiaire.
Afficher tous les liens hypertexte dans un classeur
Vous pouvez accéder à la collection de liens hypertexte, parcourir et afficher tous les liens hypertexte de votre classeur dans une boîte de message.
Le code suivant montre comment procéder et utilise une boucle imbriquée pour y parvenir :
1234567891011 | Sub ShowAllTheHyperlinksInTheWorkbook()Dim ws As Feuille de calculPour chaque ws dans ActiveWorkbook.WorksheetsPour chaque lien dans ws.HyperlinksMsgBox lnk.AddressLien suivantWS suivantFin du sous-marin |
Utilisation de la méthode FollowHyperlink pour créer des e-mails
Vous pouvez également créer des e-mails à l'aide de la méthode FollowHyperlink.
Le code ci-dessous vous montrera comment créer des e-mails à l'aide de la méthode FollowHyperlink dans VBA :
12345678 | Sub SendEmailUsingHyperlink()Dim msgLink en tant que chaînemsgLink = "mailto:" & "[email protected]" & "?" & "subject=" & "Bonjour" & "&" & "body=" & "Comment allez-vous ?"ActiveWorkbook.FollowHyperlink (msgLink)Fin du sous-marin |
Le résultat est:
Ajout d'un lien hypertexte à une forme automatique dans Excel
Vous pouvez ajouter un lien hypertexte à une forme automatique dans Excel afin que lorsque l'utilisateur clique sur la forme, il soit dirigé vers une adresse de site Web.
Le code suivant crée un rectangle arrondi, ajoute le texte au rectangle et ajoute un lien hypertexte au rectangle :
12345678910111213 | Sub AddingAHyperlinkToAShape()Dim myShape As ShapeDéfinir myDocument = Worksheets("Sheet1")Définir myShape = myDocument.Shapes.AddShape(msoShapeRoundedRectangle, 100, 100, 90, 30)Avec myShape.TextFrame.Characters.Text = "Automatiser Excel"Terminer parActiveSheet.Hyperlinks.Add Anchor:=myShape, Address:="https://www.automateexcel.com/excel"Fin du sous-marin |
Le résultat est:
Insertion de la formule de lien hypertexte dans une cellule à l'aide de VBA
Disons que vous avez un titre de publication dans la cellule A4 et un lien de publication dans la cellule B4, comme indiqué dans l'image ci-dessous.
Un rappel rapide de la syntaxe de la formule de lien hypertexte de la feuille de calcul est :
HYPERLINK(link_location, [friendly_name])
link_location - Il s'agit du lien vers le document, le fichier, l'emplacement dans le classeur ou le site en ligne.
nom familier - (Optionnel) - Le texte ou la valeur numérique qui est affiché dans la cellule.
Dans la cellule C4, vous souhaitez ajouter le lien hypertexte avec un texte convivial à afficher, maintenant vous devez généralement entrer la formule =HYPERLINK(B4,A4) dans C4 pour obtenir ce qui suit :
Vous pouvez plutôt utiliser VBA pour obtenir le même résultat et insérer cette formule dans la cellule, sur Sheet1 avec le code suivant :
123 | Sub InsertHyperlinkFormulaInCell()ActiveWorkbook.Worksheets("Sheet1").Range("C4").Formula = "=hyperlink(B4,A4)"Fin du sous-marin |
Ajout d'un lien hypertexte à un bouton dans Access
VBA vous permet également de travailler avec des liens hypertexte dans Access. Disons que nous avons un bouton sur un formulaire et lorsque l'utilisateur clique sur ce bouton, nous voulons qu'il soit redirigé vers un site Web. Pour ce faire, vous pouvez utiliser la méthode Application.FollowHyperlink.
Nous avons notre exemple de formulaire avec un bouton appelé buttonOne illustré ci-dessous.
Le code de ce bouton serait :
12345 | Bouton Sous-Sous PrivéOne_Click()Application.SuivreHyperlien ("https://www.automateexcel.com/excel/")Fin du sous-marin |
Création d'un lien hypertexte à partir d'une sélection dans Word
Vous pouvez également utiliser des liens hypertexte dans Word VBA.
Disons que nous avons du texte dans Mot qui dit "Cliquez ici pour être redirigé vers le site Web Excel automatisé", qui est sélectionné comme indiqué ci-dessous.
Pour transformer ce texte en lien hypertexte à l'aide de VBA, vous pouvez utiliser le code suivant :
123 | Private Sub TurnASelectionIntoAHyperlink()ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:="https://www.automateexcel.com/excel/", ScreenTip:="Click Here Please", Target:=NewWindowFin du sous-marin |
Le résultat est: