Supprimer les liens hypertextes dans une feuille de calcul, Excel VBA
Voici un code VBA détaillé pour supprimer les liens hypertextes dans une feuille de calcul Excel, avec des explications complètes.
Objectif :
Nous allons écrire un code VBA pour supprimer tous les liens hypertextes d’une feuille de calcul (ou d’une plage spécifique) dans Excel. Les liens hypertextes sont souvent utilisés dans les cellules d’Excel, mais dans certains cas, vous pouvez souhaiter les supprimer sans affecter le contenu de la cellule.
Concepts Impliqués :
1. Les liens hypertextes dans Excel :
- Un lien hypertexte est une référence vers une page Web ou une adresse dans Excel. Les liens hypertextes peuvent être insérés via le ruban ou le VBA, et ils permettent aux utilisateurs de cliquer sur la cellule pour naviguer vers une URL spécifique ou une autre feuille.
- Lorsque vous supprimez un lien hypertexte, Excel supprimera le lien, mais laissera intact le contenu de la cellule (texte, nombre, etc.).
2. Structure du code VBA :
- ActiveSheet : Référence à la feuille active (celle qui est sélectionnée dans le classeur).
- Collection des Hyperlinks : Chaque feuille Excel dispose d’une collection de liens hypertextes. La propriété Hyperlinks permet d’accéder à cette collection.
- Méthode Delete : Cette méthode est utilisée pour supprimer le lien hypertexte d’une cellule.
Le Code :
Voici le code VBA pour supprimer tous les liens hypertextes de la feuille active :
Sub SupprimerTousLesHyperliens() ' Déclare une variable pour référencer la feuille Dim ws As Worksheet ' Définit la feuille active comme cible Set ws = ActiveSheet ' Vérifie s'il y a des liens hypertextes dans la feuille If ws.Hyperlinks.Count > 0 Then ' Supprime tous les liens hypertextes de la feuille ws.Hyperlinks.Delete ' Affiche un message à l'utilisateur MsgBox "Tous les liens hypertextes ont été supprimés.", vbInformation Else ' Si aucun lien hypertexte n'est trouvé MsgBox "Aucun lien hypertexte trouvé dans cette feuille.", vbExclamation End If End Sub
Explication du Code :
1. Sub SupprimerTousLesHyperliens() :
Il s’agit du début de la macro. C’est le nom de la procédure qui exécutera le processus de suppression des liens hypertextes.
2. Dim ws As Worksheet :
Cette ligne déclare une variable ws qui va contenir la référence à la feuille sur laquelle nous allons supprimer les liens hypertextes. Cela rend le code plus flexible si vous souhaitez cibler une autre feuille spécifiquement.
3. Set ws = ActiveSheet :
Cette ligne affecte la feuille actuellement active (celle qui est sélectionnée lorsque vous exécutez la macro) à la variable ws. Vous pouvez remplacer ActiveSheet par un nom spécifique de feuille (par exemple, Sheets(« Feuille1 »)) si vous souhaitez cibler une feuille particulière.
4. If ws.Hyperlinks.Count > 0 Then :
Cette condition vérifie s’il existe des liens hypertextes dans la feuille active. La propriété Hyperlinks.Count retourne le nombre de liens hypertextes dans la feuille. Si le nombre est supérieur à zéro, le code supprime les liens.
5. ws.Hyperlinks.Delete :
Cette ligne supprime tous les liens hypertextes présents sur la feuille active. La méthode Delete de la collection Hyperlinks supprime chaque lien hypertexte de la feuille.
6. MsgBox « Tous les liens hypertextes ont été supprimés. », vbInformation :
Après la suppression des liens, un message s’affiche pour informer l’utilisateur que l’opération a été réalisée avec succès. Le paramètre vbInformation affiche une icône d’information dans la boîte de message.
7. Bloc Else :
Si aucun lien hypertexte n’est trouvé (ws.Hyperlinks.Count est égal à 0), le code entre dans le bloc Else et affiche un message indiquant qu’aucun lien hypertexte n’a été trouvé.
8. MsgBox « Aucun lien hypertexte trouvé dans cette feuille. », vbExclamation :
Si aucun lien n’est trouvé, un message d’avertissement s’affiche avec l’icône vbExclamation, informant l’utilisateur qu’il n’y a pas de liens sur la feuille.
9. Fin de la Sub :
La ligne End Sub marque la fin de la procédure.
Comment Utiliser Ce Code :
1. Ouvrir Excel :
Ouvrez votre classeur Excel.
2. Accéder à l’Éditeur VBA :
- Appuyez sur Alt + F11 pour ouvrir l’éditeur VBA.
3. Insérer un Module :
- Dans l’éditeur VBA, cliquez sur Insertion dans le menu du haut, puis choisissez Module.
- Cela insérera un module vierge dans lequel vous pouvez coller le code.
4. Coller le Code :
- Copiez le code VBA ci-dessus et collez-le dans le module vide.
5. Exécuter le Code :
- Appuyez sur F5 (ou cliquez sur Exécuter dans la barre d’outils) pour exécuter la macro.
- Le code supprimera tous les liens hypertextes de la feuille active et affichera un message confirmant l’action.
Supprimer les Hyperliens d’une Plage Spécifique :
Si vous souhaitez supprimer les liens hypertextes uniquement d’une plage spécifique de cellules, vous pouvez modifier le code pour cibler cette plage. Par exemple :
Sub SupprimerHyperliensPlage() ' Déclare les variables pour la feuille et la plage Dim ws As Worksheet Dim rng As Range ' Définit la feuille active comme cible Set ws = ActiveSheet ' Définit la plage (par exemple, A1 à D10) Set rng = ws.Range("A1:D10") ' Supprime les liens hypertextes dans la plage spécifiée rng.Hyperlinks.Delete ' Affiche un message à l'utilisateur MsgBox "Les liens hypertextes de la plage spécifiée ont été supprimés.", vbInformation End Sub
Conclusion :
Ce code VBA permet de supprimer tous les liens hypertextes d’une feuille (ou d’une plage spécifique) sans affecter le contenu des cellules. Il est simple et efficace pour nettoyer vos feuilles de calcul Excel en supprimant les liens indésirables.