Les hyperliens dans Excel se modifient seuls

Résolu
Hello,

Voilà.. Depuis que l'entreprise où je fais mon stage est passée de la version 2003 à 2010 d'Office il y a pas mal de souci dont.. :

Les liens créés dans Excel, vers un pdf sur le serveur par exemple, ne fonctionnent plus.. En effet au lieu que la syntaxe soit : "\\serv596\Services\ 51 - communication\....\fichier.pdf "
C'est devenu : "../../ 51 - communication/..../fichier.pdf "
J'ai donc réouvert ce même fichier sur un poste équipé d'Excel 2003 et même problème..

Dans les deux versions si on modifie à la main le lien ok ça marche mais après ça se change tout seul !..
Parmi une dizaine de lien un seul fonctionnait !..

Help ='( J'en ai marre il n'y a que des soucis et mon maître de stage est en congés !..

Merci d'avance

7 réponses

  1. tu peux toujours essayer de substituer les / par des \
    et réécrire le lien hypertexte

    par exemple, imaginons un lien hypertexte dans la cellule A1

    =LIEN_HYPERTEXTE(SUBSTITUE(A1;"/";"\"))
    0
    1. ça ne marche pas =S
      0
    2. ça me m'affiche le même nom que la cellule, se met en bleu souligné (comme s'il y avait un lien hypertexte), mais aucun lien n'est rattaché !
      0
  2. Ah pas idiot.. Mais faudrait faire toutes les cellules.. Et le début du lien je fais comment ? =S
    0
    1. avec une macro de ce type:
      qui extrait tous les liens de B1 à B300 et les colle 4 colonnes plus loin
      quand je presse le raccourci clavier: Ctrl+y

      Sub extractionhypertexte()   
      '   
      ' extractionhypertexte Macro   
      ' Macro enregistrée le 31/08/2010 par tchernosplif   
      '   
      ' Touche de raccourci du clavier: Ctrl+y   
      '   
      Dim Cell As Range   
      On Error Resume Next   
      For Each Cell In Range("B1:B" & Range("B300").End(xlUp).Row)   
      
      Cell.Offset(0, 4) = Cell.Hyperlinks(1).Address   
      Next Cell   
      
      End Sub


      !!! il faut attribuer le raccourci clavier !!!

      il est possible de mettre un offset de 0 pour réécrire les liens dans les mêmes cellules.

      si quelqu'un sait faire la substitution de caractères / \ via une macro ...
      0
      1. ça m'aide en quoi ?..
        0
    2. Comment on utilise crée une macro ?..

      Parce que ça me prend le chou là ><
      0
      1. Contributeur
        salut
        sélectionne ta plage de cellules puis appuie sur les touches Ctrl et H en même temps
        mettre \ dans chercher et / dans remplacer et cliquer sur remplacer tout
        qu'est-ce que ça donne ?

        voir aussi dans les options de correction auto ce qu'il y a de cocher pour tout ce qui est internet et réseau
        0
        1. ça ne marche pas puisque ça chercher dans le nom de la cellule et pas dans le lien n qui se trouve derrière =/
          0
        2. Heu j'ai essayé de simplement rechercher un "e" et il me Excel me dit qu'il ne trouve rien oO Pourtant il y en a des "e" !
          0
        3. Pour que les liens soient fonctionnels, il faudrait aussi remplacer

          ../..
          par
          \\serv596\Services\

          Si vraiment tu coinces, je te propose d'envoyer ton fichier (ou une partie) en pièce jointe.
          0
      2. J'ai trouvé comment créer ma macro ! ; ) Le bouton Visual Basic dans l'onglet Développeur !

        Code :

        Sub ReplacePartHyperlinkAddress()
        Dim hLink As Hyperlink
        Dim wSheet As Worksheet
        Dim chainecherch As String
        Dim nouvchaine As String
        'demande quelle chaine est à remplacer
        chainecherch = InputBox("Quelle est la chaine à remplacer dans les liens hypertexte,svp")
        'demande la nouvelle chaine à insérer
        nouvchaine = InputBox("Nouvelle valeur à insérer dans les liens hypertexte, svp")
        'traite toutes les feuilles
        For Each wSheet In Worksheets
        For Each hLink In wSheet.Hyperlinks
        'ici remplace l'adresse du lien hypertexte
        hLink.Address = Replace(hLink.Address, chainecherch, nouvchaine)
        'ici remplace le texte afiché
        hLink.TextToDisplay = Replace(hLink.TextToDisplay, chainecherch, nouvchaine)
        Next hLink
        Next wSheet
        End Sub
        0
        1. Merci à tous ! ; )
          0