Lien Hypertexte complexe utilisant des valeurs de cellules

Résolu
Willuc Messages postés 10 Statut Membre -  
Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   -
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

  1. Willuc Messages postés 10 Statut Membre
     
    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...
    0
  2. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Pas simple à comprendre.... pouvez-vous mettre un exemple explicite sur un fichier que vous mettez sur https://www.cjoint.com/ et poster le lien

    0
  3. Willuc Messages postés 10 Statut Membre
     
    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.
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Willuc Messages postés 10 Statut Membre
     
    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.
    0
  6. Willuc Messages postés 10 Statut Membre
     
    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.
    0
  7. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
    0
  8. Willuc Messages postés 10 Statut Membre
     
    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...
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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
      0
  9. Willuc Messages postés 10 Statut Membre
     
    Ca marche au poil !

    Je fais comment pour l'appliquer à ma feuille ?

    Help !
    0
  10. Willuc Messages postés 10 Statut Membre
     
    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 !!!
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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
      0
    2. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
       
      Bonjour eriiic,
      J'arrive juste à la fin... merci eriiic.
      Amicales salutations.
      Le Pingou
      0