Lien Hypertexte complexe utilisant des valeurs de cellules

[Résolu/Fermé]
Signaler
Messages postés
9
Date d'inscription
samedi 29 mars 2014
Statut
Membre
Dernière intervention
6 octobre 2015
-
Messages postés
10513
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 octobre 2021
-
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

Messages postés
10161
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
23 octobre 2021
2 232
Bonjour,

Je ne sais pas si ça va t'aider, mais un exemple de lien hypertexte utilisant des valeurs de cellules
https://www.cjoint.com/?3CDoyDeBtRB

Cdlmnt
Messages postés
9
Date d'inscription
samedi 29 mars 2014
Statut
Membre
Dernière intervention
6 octobre 2015

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...
Messages postés
10513
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 octobre 2021
1 222
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

Messages postés
9
Date d'inscription
samedi 29 mars 2014
Statut
Membre
Dernière intervention
6 octobre 2015

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.
Messages postés
9
Date d'inscription
samedi 29 mars 2014
Statut
Membre
Dernière intervention
6 octobre 2015

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.
Messages postés
9
Date d'inscription
samedi 29 mars 2014
Statut
Membre
Dernière intervention
6 octobre 2015

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.
Messages postés
24205
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
24 octobre 2021
6 938
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
Messages postés
9
Date d'inscription
samedi 29 mars 2014
Statut
Membre
Dernière intervention
6 octobre 2015

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...
Messages postés
24205
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
24 octobre 2021
6 938
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
Messages postés
9
Date d'inscription
samedi 29 mars 2014
Statut
Membre
Dernière intervention
6 octobre 2015

Ca marche au poil !

Je fais comment pour l'appliquer à ma feuille ?

Help !
Messages postés
9
Date d'inscription
samedi 29 mars 2014
Statut
Membre
Dernière intervention
6 octobre 2015

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 !!!
Messages postés
24205
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
24 octobre 2021
6 938
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
Messages postés
10513
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 octobre 2021
1 222
Bonjour eriiic,
J'arrive juste à la fin... merci eriiic.
Amicales salutations.
Le Pingou