Macro VBA : Créer un lien hypertexte "consulter" intégré (sans formule)

 


🔧 Macro VBA : Créer un lien hypertexte "consulter" intégré (sans formule)

Macro VBA avec colonne de destination personnalisable

vba
Sub AjouterLiensHypertexteDansColonneChoisie() Dim cellule As Range Dim plage As Range Dim chemin As String Dim colonneDestination As String Dim cible As Range Dim feuille As Worksheet ' 🔧 Paramètres à adapter 'Set feuille = ThisWorkbook.Sheets("Feuil1") ' nom de la feuille Set feuille = Factures_Liste ' nom code de feuille Set plage = feuille.Range("A2:A100") ' plage contenant les chemins colonneDestination = "D" ' colonne où afficher le lien "consulter" ' 🔄 Parcourt chaque cellule de la plage source For Each cellule In plage If cellule.Value <> "" Then chemin = cellule.Value Set cible = feuille.Cells(cellule.Row, feuille.Columns(colonneDestination).Column) ' Supprimer tout contenu ou ancien lien cible.Clear ' 🧷 Crée un lien hypertexte affichant "consulter" feuille.Hyperlinks.Add _ Anchor:=cible, _ Address:=chemin, _ TextToDisplay:="consulter" End If Next cellule MsgBox "✅ Les liens ont été insérés dans la colonne '" & colonneDestination & "'.", vbInformation End Sub

✅ Avantages de cette méthode :

  • Le lien est directement intégré via VBA.

  • Il ne repose pas sur une formule Excel.

  • Tu peux supprimer la colonne source sans casser les liens.

  • Le texte affiché est personnalisable (ici : "consulter").


🧪 Comment utiliser cette macro :

  1. Ouvre l’éditeur VBA avec ALT + F11.

  2. Menu Insertion > Module.

  3. Colle le code ci-dessus.

  4. Ferme l’éditeur.

  5. Dans Excel : ALT + F8 > Choisis AjouterLiensHypertexteSolides > Clique sur Exécuter.


📌 Comment personnaliser :

  • 🔤 colonneDestination = "D" : change "D" par "E", "F", etc. selon la colonne où tu veux insérer les liens.

  • 📄 Set plage = ... : adapte la plage contenant les chemins si nécessaire.

  • 🗂 Set feuille = ... : mets le nom exact de ta feuille (ex : "Factures").

  • Si tu définis la plage comme :

    vb Set plage = Range("A10:A100")

    Et que tu choisis la colonne de destination "D" comme ceci :

    vb colonneDestination = "D"

    ➡ Alors les liens hypertextes seront insérés à partir de D10 jusqu’à D100, en suivant la même ligne que chaque cellule source.


    🔁 Correspondance ligne par ligne :

    Chemin (colonne A)Lien "consulter" (colonne D)
    A10D10
    A11D11
    A12D12
    ......
    A100D100

    Donc, la ligne est toujours conservée, seul le numéro de colonne change, grâce à cette ligne du code :

    vba
    Set cible = feuille.Cells(cellule.Row, feuille.Columns(colonneDestination).Column)

🧪 Utilisation :

  1. ALT + F11Insertion > Module

  2. Colle le code

  3. ALT + F8 → Exécute AjouterLiensHypertexteDansColonneChoisie

Commentaires

Posts les plus consultés de ce blog

🛠 Utilisation de CustomUIEditor pour Personnaliser le Ruban Excel

🗓️ Simulateur de Congés et Calendrier Collaboratif sous Google Sheets

Explication VBA : Facturation automatique Gestion client