Bonjour,
Voici mon besoin…
J’ai un tableau Excel de clients, dans lequel je cherche à créer des liens hypertexte pour afficher leur compte de notre base de données (application web via un navigateur).
Je dois créer un lien hypertexte en concaténant les données d’une ou plusieurs cellules.
Je me sers donc de la fonction CONCATENER, ce qui donne ce genre de chose :
B3 contient un numéro de compte client. Cette donnée étant contenue dans l’URL, il me faut la récupérer dans mon tableau.
Code formule : Sélectionner tout - Visualiser dans une fenêtre à part =CONCATENER("=LIEN_HYPERTEXTE("""&"http://lien/"&B3&"suite du lien""" &";"&B3&")")
Jusque-là, pas de souci. Sauf que le but est de supprimer les cellules auxquelles je fais référence dans les liens (B3 dans l’exemple) ; le lien ne doit donc plus être une concaténation, mais le lien en « dur » qui affichera ce que contenait B3.
J’ai donc tenté de copier la formule en ne retenant que les valeurs et ça marche… presque. La valeur de la formule est bien copiée dans la cellule de réception, mais celle-ci n’est pas considérée comme un lien. Elle s’affiche comme du texte non cliquable de cette façon :
Alors que je voudrais un lien hypertexte qui s’affiche ainsi :
Code formule : Sélectionner tout - Visualiser dans une fenêtre à part =LIEN_HYPERTEXTE("http://lien/6301292/suite du lien";6301292)
6301292
Pour qu’elle soit considérée comme un lien, il faut que je mette la cellule en mode modification (F2) et que je valide « tout simplement » pour que la cellule soit bien formatée.
Bon, si je n’avais qu’une cellule, ce serait vite fait bien fait, mais j’en ai 40.000, et là ça devient bien lourd. J’ai cherché sur le net, mais je n’ai pas trouvé de fonction qui permet de formater un texte en lien hypertexte.
J’ai trouvé un palliatif qui est le suivant : je sélectionne toute la colonne et tente de convertir les données ; la fenêtre « Assistant conversion » s’affiche alors et il me suffit de cliquer sur le bouton « Terminer » pour que les données soient converties… Mais dans ce cas, le contenu de la première cellule est recopié dans toutes les autres cellules ! Mais j’ai trouvé une solution de contournement : il suffit d’annuler la dernière fonction (Contrôle + Z) pour que les cellules affichent les bonnes références (ne me demandez pas pourquoi…). Fort de cette trouvaille, j’ai tenté avec l’enregistreur de macro de récupérer le code, mais… ça ne fonctionne pas.
La seule solution que j’ai trouvée est de simuler l’appui des touches avec SendKeys, mais comme ce n’est pas première fois que je suis confronté au problème, je me demandais s’il n’y avait pas une solution plus propre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Sub Hypertexte() 'Mettre au format "lien hypertexte" 'Utilisation de la simulation d'appuie de touches 'Sélectionner la feuille Worksheets("EtatSoldes").Activate 'Sélectionner la cellule de départ Range("y2").Select 'Etendre la sélection à toute la colonne Range(Selection, Selection.End(xlDown)).Select 'Simulation des touches SendKeys "%" SendKeys "é" SendKeys "o" SendKeys "t" ''Simulation des touches "Contrôle + Z" 'pour annuler la dernière fonction, c'est la seule façon 'pour que ça marche SendKeys "^z" End Sub
Partager