Macro vba et formule HYPERLINK

MarcoOoOoOo

XLDnaute Nouveau
Bonjour,

Je supervise un planning edité sous excel.
Dans chaque cellule, il y a 3 mots dont le dernier et un nombre de 4 chiffres qui est une reference à une page php.
Au debut je créais des liens en utilisant la methode manuelle clic droit / hyperlink / ... Hors lorsque je supprimais un colonne de ce planning pour la coller sur un planning archive, j'ai commencé à avoir des liens qui se déplaçaient sur d'autres cellules. En cherchant sur le net, j'ai trouvé qu'une solution etait de remplacer les liens créés manuellement par une formule du style [=HYPERLINK("liens";"message_a_afficher")]. J'ai décidé de créer un bouton qui me permettrait de convertir le texte que je rentre dans le cellule en formule HYPERLINK pour simplifier la chose.

J'en suis arrivé à la macro suivante:
======================================================
Private Sub CommandButton1_Click()

Dim link As String
Dim display As String

link = "http://URL_fixe" & Right(ActiveCell.Text, 4)
display = ActiveCell.Text

ActiveCell.Formula = "=HYPERLINK(" & CStr(link) & "," & CStr(display) & ")"

End Sub
======================================================
- link corresponds au texte fixe de mon URL
- Right(ActiveCell.Text, 4) me donne la reference à rajouter à l'URL
- display recupere le texte de la cellule que je veux garder en affichage

Malgré mes multiples recherches sur Google, je n'arrive pas à faire fonctionner ce script. J'obtiens l'erreur:
================================
Runtime Error '1004':
Application-defined or object-defined error
================================

Il fonctionne lorsque j'enleve le "=" de devant HYPERLINK. Mais du coup je dois le rajouter à la main afin que le lien fonctionne.
J'ai aussi essayé les syntaxes suivantes:
=============================================
ActiveCell.Formula = "=" & "HYPERLINK(" & CStr(link) & "," & CStr(display) & ")"
ou
ActiveCell.Formula = Chr(61) & "HYPERLINK(" & CStr(link) & "," & CStr(display) & ")"
=============================================
Mais meme resultat.

J'ai besoin d'un coup de main, mes connaissances VBA étant limitées ...

Merci d'avance,

MarcoOoOoOo
 
C

Compte Supprimé 979

Guest
Re : Macro vba et formule HYPERLINK

Bonjour Marco et bienvenue sur le forum.

Mieux vaut utiliser la bonne vieille technique ;)

Code:
Private Sub CommandButton1_Click()
Dim link As String
Dim display As String
 
link = "http://URL_fixe" & Right(ActiveCell.Text, 4)
display = ActiveCell.Text
[COLOR=blue]ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=link, TextToDisplay:=display[/COLOR]
End Sub

A+
 

MarcoOoOoOo

XLDnaute Nouveau
Re : Macro vba et formule HYPERLINK

Hello Bruno,

Merci pour ton retour.
J'ai essayé et cela fonctionne bien. Par contre, je me retrouve avec le même problème qui fait que le lien n'est pas vraiment lié à la cellule. Cela équivaut à la création d'un lien en utilisant le clic droit sur la cellule. Avec cette méthode, j'aurais toujours le probleme qui est que des liens vont se balader sur ma feuille excel lorsque je supprime une colonne ou se trouve beaucoup de liens.

C'est pour cela que j'essaie de remplacer de tels liens en formule "=HYPERLINK()". Une idée du pourquoi mon script utilisant la formule HYPERLINK ne fonctionne pas?

Merci et A+
 

tototiti2008

XLDnaute Barbatruc
Re : Macro vba et formule HYPERLINK

Bonjour à tous,

essaye ça :

Code:
Dim link As String
Dim display As String
link = "http://URL_fixe" & Right(ActiveCell.Text, 4)
display = ActiveCell.Text
ActiveCell.FormulaR1C1 = "=HYPERLINK(""" & CStr(link) & """,""" & CStr(display) & """)"
 

Discussions similaires

Statistiques des forums

Discussions
312 675
Messages
2 090 799
Membres
104 667
dernier inscrit
gwtr