Comment transformer une fonction =Hyperlink() en vrai lien ?

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

sofysofe

XLDnaute Junior
Je m'explique :
J'ai la formule suivante qui me permet de rapidement créer mes liens :
=HYPERLINK(CONCATENATE("mailto:nom.prenom@domaine.com?Subject=","Registration - ",D2," - ",TEXT(B2,"jjjj jj mmmm aa")),"Click here to register (…)")

J'ai besoin de transformer ça en vrai lien, sans formule.

J'ai trouvé ce code VBA, mais il ne fonctionne que si la fonction est de la forme =Hyperlink(a1;b1), et pour ma formule, ça ne fonctionne pas :

Sub RealLink()
Dim strLink As String, strFriendly As String
Dim iLinkStart As Integer, iComma As Integer
Dim iLen As Integer
strLink = ActiveCell.Formula
iLen = Len(strLink)
'character that starts the link_location
iLinkStart = Len("=HYPERLINK") + 3
'where's the comma that separates link_location
'from friendly_name?
iComma = InStr(iLinkStart, strLink, ",")
strFriendly = Mid(strLink, iComma + 2, iLen - iComma - 3)
strLink = Mid(strLink, iLinkStart, _
iComma - iLinkStart - 1)
ActiveCell.ClearContents
ActiveSheet.Hyperlinks.Add anchor:=ActiveCell, _
Address:=strLink, TextToDisplay:=strFriendly
End Sub


Si quelqu'un peut m'aide, c'est trop cool, merci d'avance !!!😱
 
Re : Comment transformer une fonction =Hyperlink() en vrai lien ?

bonjour,

Malgrès les MP voici un test:
[C2:C9] -> plage des cellules qui contiennent les formules
Code:
Sub TransFormHyperLinks()
    Dim plg As Range, c
    Dim adr As String
    Set plg =[COLOR=red] [C2:C9]
[/COLOR]    For Each c In plg.Cells
        adr = c.Text
        c.Formula = ""
        ActiveSheet.Hyperlinks.Add c, adr
    Next c
End Sub

A+
 
Re : Comment transformer une fonction =Hyperlink() en vrai lien ?

Re bonjour,

voilà qui reproduit en vba la concatenation et la transforme en lien
Cela fonctionne chez moi.

Les dates en B et le complément du sujet en D

Code:
Sub TransFormHyperLinks()
    Dim Lien As String
    Lien = "mailto:nom.prenom@domaine. com?Subject=Registration - # - &"
    Dim plg As Range, c
    Set plg = [C2:C9]
    For Each c In plg.Cells
        If IsDate(Range("B" & c.Row)) And Not IsEmpty(Range("D" & c.Row)) Then
            ActiveSheet.Hyperlinks.Add Anchor:=c, _
                Address:=Replace(Replace(Lien, "#", Range("D" & c.Row)), "&", Format(Range("B" & c.Row), "dddd dd mmmm yy")) _
                , TextToDisplay:="Click here to register (…)"
        End If
    Next c
End Sub

Si ce n'est pas cela qui est souhaité, joindre un fichier avec seulement quelque formule à adapter.

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour