Lien Hypertexte complexe utilisant des valeurs de cellules

Résolu
Bonjour à tous,

Dans un tableur qui recense des contrats, j'ai besoin de créer, pour les consulter en ligne, de créer un lien hypertexte.
L'adresse intranet ainsi créee comporte largement plus de 255 caractères et comporte beaucoup de caractères spéciaux %, = , ?, &, etc...

Dans mon exemple 2 valeurs de cellules à utiliser situés l'une en colonne B l'autre en colonne C. Sachant que ces 2 valeurs se retrouvent accolées dans la formule finale.
Par exemple B1 et C1 doivent se loger ainsi: .....reference=B1C1&profil=G60B%drco.doc....

J'ai tenté :
=Lien_Hypertexte("http//renegade-hi.del.....reference=" & B1 & "" & C1 & "&profil=G60B.....)

Cependant j'obtiens toujours une erreur...

Est-ce du aux caractères spéciaux contenus dans mes adresses?
Par ailleurs, si une solution à mon problème existe, comment faire pour que chaque ligne de la colonne D génère un lien qui utiliserait la cellule B et C de la ligne correspondante.

Merci d'avance de vos lumières

10 réponses

  • Votes
  • Date
  • Date décroissante
  1. Merci, je viens de regarder mais comme il n'y a guère d'explications j'avoue que ça ne m'aide pas trop...

    J'ai tenté autre chose toutefois,

    inscrire le début de mon adresse "htpp//....." en case perdue hors tableur ex: A168 ainsi que la fin "&profil=G60B...." en A169

    en tapant dans la case destinée à mon lien hypertexte :

    =CONCATENER(A168;B1;C1;A169)

    J'obtiens le bon résultat de composition. Le résultat s'affiche en totalité ce qui détériore la visibilité de mon tableur, vu que l'adresse contient environ 300 caractères au final mais surtout, bien que le lien s'affiche en bleu (type lien hypertexte), impossible de le déclencher. Aucun résultat lorsque je clique dessus.

    Si je copie le résultat obtenu et que je le colle dans la barre d'adresse de mon navigateur cela fonctionne pourtant parfaitement.

    Je ne dois pas être trop loin de la vérité, mais toujours pas résolu...
    1. Je réexplique si je n'ai pas été clair :

      En case B une donnée
      En case C une autre

      B et C réunis donnent le type et numéro d'une référence
      Pour la retrouver dans notre intranet, l'adresse se compose ainsi :

      "http//renegade-hi.del.....reference=BC&profil=G60B.....)

      Je cherche donc a créer en D lien hypertexte pour accéder directement à la réf concernée. Sachant que le texte d'adresse est très long (intranet) et comporte de nombreux signes et caractères spéciaux.

      J'ai réussi à créer l'adresse en utilisant CONCATENER.
      En faisant ex: Toujours B et C, en E le début de l'adresse et F la fin.
      Si en D j'écris : =CONCATENER(E;B;C;F) alors j'obtiens l'adresse complète en D. Ellle s'affiche comme un lien hypertexte, mais ce lien n'utilise pas le texte ainsi crée car lorsque je passe sur la cellule il indique le chemin vers un dossier de mon PC.

      Donc toujours pas résolu, j'espère avoir été plus clair cette fois.
      1. Up...

        Je viens d'essayer avec un autre texte type recherche google et là ça fonctionne!

        Donc mon problème est partiellement résolu, je pense qu'il doit y avoir une coquille dans mon tableur.
        1. Re-up

          En fait le problème vient du fait que l'adresse ainsi générée dépasse les 255 caractères donc le lien ne fonctionne plus.

          Il faudrait que j'arrive à créer une macro qui se substituerait au lien.

          Si quelqu'un à une suggestion je suis preneur!

          Merci encore.
          1. Contributeur
            Bonjour,

            à tester si ça va mieux :
            Sub creerLiens()
                Dim c As Range
                Application.ScreenUpdating = False
                For Each c In Range("D2:D" & Cells(Rows.Count, "D").End(xlUp).Row)
                    If c <> "" Then
                        ActiveSheet.Hyperlinks.Add Anchor:=c, _
                        Address:=[URLPart1] & c.Offset(, -2) & c.Offset(, -1) & [URLPart2], TextToDisplay:=c.Value
                    End If
                Next c
            End Sub

            https://www.cjoint.com/?DDbjEVQRItJ
            Tu dois saisir les parties gauche et droite de tes liens dans Param!B1:B2 (cellules nommées)

            eric
            1. Merci pour ta réponse mais je dois avoir présumé de mes capacités car je ne sais pas comment utiliser ce que tu me proposes....honte sur moi...

              J'ai déjà bidouillé quelques macros mais c'était il y a longtemps et je crois que j'ai un peu tout oublié...

              J'ai tenté de taper ce texte dans la feuille de code mais j'ai un message d'erreur (erreur de compilation attendu fin d'instruciton). Mais compte tenu de mon nullissime niveau je pense que je ne dois pas m'y prendre comme il faut, ni sûr d'ailleurs de le saisir là où il faut.

              De plus Param!B1:B2 je ne sais pas comment m'y prendre...

              Bref, un peu too much pour moi.

              Si tu as quelques conseils à me donner pour le chemin qui mène à cette saisie, je suis preneur...
              1. Contributeur
                Dans un premier temps reste sur le classeur que je t'ai fourni pour voir si ça fonctionne.

                Dans l'exemple que tu vois j'ai mis dans Param B1 et B2 le début et la fin d'un lien vers google, et le mot recherché ("test") découpé en 2 dans Feuil1!B2 et C2.
                Clique sur le bouton, tu vois que lien1 et lien2 deviennent des liens actifs vers une recherche google.

                Tu disais :
                en tapant dans la case destinée à mon lien hypertexte :
                =CONCATENER(A168;B1;C1;A169)

                J'ai supposé que ton lien se composait donc d'un début fixe, de 2 parties variables et d'une fin fixe.
                Saisir :
                - 'début fixe' de ton adresse intranet dans Param!B1
                - 'fin fixe' de ton adresse intranet dans s Param!B2
                - tes 2 parties variables dans Feuil1!B:C
                - le texte du lien dans Feuil1!D
                - cliquer sur le bouton, les liens deviennent actif, les tester.

                Si j'ai mal compris parties fixes et variables de ton adresse reprécise.
                Si c'est le cas tu peux quand même tester avant si ça fonctionnera :
                - met une adresse intranet complète dans Feuil1!B2 et vide C2 ainsi que Param!B1:C1.
                - clique sur le bouton
                - clique sur lien1 pour voir si ta page s'ouvre

                eric
            2. Ca marche au poil !

              Je fais comment pour l'appliquer à ma feuille ?

              Help !
              1. Je me suis débrouillé en utilisant ton classeur, un copié collé des miens.
                Une manip un peu lourde compte tenu de mes feuilles qui ont des présentations spécifiques mais l'essentiel est que ça marche!

                Encore MERCI !!!
                1. Contributeur
                  Il fallait faire Alt+F11 pour lancer l'éditeur VBA et coller le code dans le module Feuil1.
                  Sans oublier de nommer les cellules dans Param

                  eric
                2. Bonjour eriiic,
                  J'arrive juste à la fin... merci eriiic.
                  Amicales salutations.
                  Le Pingou