Copier/coller valeur =LIEN_HYPORTEXTE en gardant le lien /Urgent

Marc -  
eriiic Messages postés 24581 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

4 réponses

  1. g Messages postés 1285 Statut Membre 578
     
    Bonjour,

    Il ne faut pas faire Coller Valeur, mais Coller.

    Cordialement.
    0
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    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
    0
  3. Marc
     
    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 !
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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.
      0
    2. Marc
       
      Je pensais pouvoir gerer cette étape seul. Joint un extrait de mon fichier. A noter que la feuil 1 est en fait un fichier à part. L'objet est de remplacer la colonne J par un lien hypertexte.

      Encore une fois merci
      Marc

      http://cjoint.com/?3Jko6xLsPBK
      0
    3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      à tester, fichier2 doit être ouvert :
      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
      0
    4. marc
       
      Merci beaucoup Eric. Cela répond exactement à mon besoin !
      0
    5. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Petit détail : tu peux enlever lien=... et la déclaration de cette variable. Elle ne se justifiait plus, je ne l'ai pas utilisée.
      eric
      0