Copier/coller valeur =LIEN_HYPORTEXTE en gardant le lien /Urgent
Marc
-
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'utilise la fonction =LIEN_HYPERTEXTE(emplacement;nom ) en utilisant des fichiers extérieurs.
Dans un soucis de confidentialité, je souhaite casser les lien vers le fichier exterieur ce qui se traduit par un copier/coller valeur.
Pb: la fonction ne créée par de lien hypertexte à proprement parler et donc je perd ce lien.
L'idéal serrai une macro qui fera :
-copier lien
- coller valeur "nom"
-insérer lien hypertexte (emplacement)
Je ne sais pas écrir de macro !
Merci de votre aide
J'utilise la fonction =LIEN_HYPERTEXTE(emplacement;nom ) en utilisant des fichiers extérieurs.
Dans un soucis de confidentialité, je souhaite casser les lien vers le fichier exterieur ce qui se traduit par un copier/coller valeur.
Pb: la fonction ne créée par de lien hypertexte à proprement parler et donc je perd ce lien.
L'idéal serrai une macro qui fera :
-copier lien
- coller valeur "nom"
-insérer lien hypertexte (emplacement)
Je ne sais pas écrir de macro !
Merci de votre aide
A voir également:
- Copier/coller valeur =LIEN_HYPORTEXTE en gardant le lien /Urgent
- Lien url - Guide
- Créer un lien pour partager des photos - Guide
- Historique copier coller - Guide
- Copier coller pdf - Guide
- Style d'écriture a copier coller - Guide
4 réponses
Bonjour,
si j'ai bien compris une proposition qui convertit les liens de la plage sélectionnée :
https://www.cjoint.com/?DJknTlAWyiY
eric
si j'ai bien compris une proposition qui convertit les liens de la plage sélectionnée :
Sub convertirLien()
Dim c As Range, lien As Variant
For Each c In Selection
If Left(c.Formula, 11) = "=HYPERLINK(" Then
lien = Split(Replace(Mid(c.Formula, 12, Len(c.Formula) - 13), """", ""), ",")
c = c.Value
ActiveSheet.Hyperlinks.Add c, lien(0) ', , , lien(1)
End If
Next c
End Sub
https://www.cjoint.com/?DJknTlAWyiY
eric
C'est cela ! J'ai juste un petit si(...) à tuer.
La formule est la suivante :
=SI(B32="";"";SI(ESTNA(RECHERCHEV(B32;'DO'!$C:$L;10;FAUX));"";LIEN_HYPERTEXTE(RECHERCHEV(B32;'DO'!$C:$J;8;FAUX);RECHERCHEV(B32;'DO'!$C:$J;4;FAUX))))
Savez vous ajuster ?
Dans tout les cas merci !
La formule est la suivante :
=SI(B32="";"";SI(ESTNA(RECHERCHEV(B32;'DO'!$C:$L;10;FAUX));"";LIEN_HYPERTEXTE(RECHERCHEV(B32;'DO'!$C:$J;8;FAUX);RECHERCHEV(B32;'DO'!$C:$J;4;FAUX))))
Savez vous ajuster ?
Dans tout les cas merci !
Pourquoi ne pas tout dire la 1ère fois ?
On pourra y réfléchir avec 2 fichiers (réduits à l'essentiel, 4-5 lignes et tous les cas de figure) pour les tests.
eric
PS: si tu pouvais enlever le 'urgent' de ton titre stp. Ici on bosse bénévolement au rythme qu'on veut, et sur ce qu'on veut. Après il faut s'adresser à un professionnel qui laissera tomber tout le reste si tu y mets le prix.
On pourra y réfléchir avec 2 fichiers (réduits à l'essentiel, 4-5 lignes et tous les cas de figure) pour les tests.
eric
PS: si tu pouvais enlever le 'urgent' de ton titre stp. Ici on bosse bénévolement au rythme qu'on veut, et sur ce qu'on veut. Après il faut s'adresser à un professionnel qui laissera tomber tout le reste si tu y mets le prix.
à tester, fichier2 doit être ouvert :
eric
Sub convertirLien()
Dim c As Range, lien As Variant, pos As Long
Dim sh2 As Worksheet, c2 As Range
Set sh2 = Workbooks("classeur1.xlsm").Sheets("Feuil1")
For Each c In Selection
pos = InStr(c.Formula, "HYPERLINK(")
If pos > 0 Then
Set c2 = sh2.[C:C].Find(Cells(c.Row, 2), LookIn:=xlValues, lookat:=xlWhole)
If Not c2 Is Nothing Then
lien = c2.Offset(, 7)
c = c.Value
ActiveSheet.Hyperlinks.Add c, c2.Offset(, 7)
End If
End If
Next c
End Sub
eric