Power Query Conserver les liens hypertextes

bluesky12000

XLDnaute Junior
Bonjour à tous,

Sur un classeur j'ai 5 bases de données dans 5 tableaux différents. Dans l'une des colonnes de chacun de ces tableaux j'ai des liens hypertextes, tous différents mais qui affichent le mot lien.
Sur un autre classeur j'ai un tableau créé avec Power Query qui "append" les 5 autres tableaux. Malheureusement les liens hypertextes sont retranscrits en texte.
Dans Power Querry je ne vois aucune option pour définir les données en tant que lien.

Dans la formule d'une des 5 bases je vois cette info = Table.TransformColumnTypes(BDDAccompagnateurs_Table,{{"Type", type text}, {"Pays", type text}, {"Ville", type text}, {"Description", type text}, {"Prestataire", type text}, {"Prestation", type text}, {"Unité", type text}, {"Prix", Int64.Type}, {"Cotation", type text}, {"Date d'ajout", type datetime}, {"Source", type text}})

C'est ce type que j'aimerai changer.

Merci beaucoup,
 

job75

XLDnaute Barbatruc
Bonjour bluesky12000,

Vous pouvez après importation utiliser une macro pour créer les liens hypertextes.

Si dans Tableau1, colonne Source, il y a bien l'adresse des liens , exécutez :
VB:
Sub Liens()
Dim c As Range
For Each c In [Tableau1[Source]]
    If c <> "" Then c.Hyperlinks.Add c, c
Next
End Sub
A+
 

bluesky12000

XLDnaute Junior
Bonjour bluesky12000,

Vous pouvez après importation utiliser une macro pour créer les liens hypertextes.

Si dans Tableau1, colonne Source, il y a bien l'adresse des liens , exécutez :
VB:
Sub Liens()
Dim c As Range
For Each c In [Tableau1[Source]]
    If c <> "" Then c.Hyperlinks.Add c, c
Next
End Sub
A+
Merci job75, cette macro fonctionne très bien pour remettre les textes de la colonne au format lien.
Mon souci est que l'information se perd dans Power Querry. Car dans mes tableaux à exporter les liens affichent tous le même mot lien mais avec des urls différentes.
A l'arrivée je n'ai plus que les mots liens et je perds l'information du lien.
 

chris

XLDnaute Barbatruc
Bonjour

A ce jour, il n'est pas possible d'avoir d'hyperlien dans PowerQuery (comme dans la plupart des outils de bases de données)

Dans Excel, il y a une analyse automatique (et parfois pénible) du contenu de la cellule et si Excel y voit un mail ou une url il génère l'hyperlien

Cet automatisme ne se déclenche qu'à la saisie ou modifiaction de la cellule, ce qui n'est ni l'un, ni l'autre quand on récupère le résultat d'une requête.

Je n'ai pas compris ce que tu entends par mot lien
 

job75

XLDnaute Barbatruc
Re, bonjour chris,
Mon souci est que l'information se perd dans Power Querry. Car dans mes tableaux à exporter les liens affichent tous le même mot lien mais avec des urls différentes.
Il faut vous arranger pour que dans les fichier sources les cellules des liens affichent les url.

Au besoin traiter tous les fichiers sources par une macro qui ouvrira chaque fichier.

Sinon bien sûr les url seront perdus.

A+
 

bluesky12000

XLDnaute Junior
Merci à tous les deux,

En fait mes liens, sont des URL vers des fichiers sur google drive où se trouve la source des informations contenues dans mes bases de données. L'idée est que si j'ai un doute sur la véracité de l'information, je clique sur ce lien et je vérifie que les informations sont bonnes.

Mon problème est que j'ai d'autres colonnes après celle où se trouvent mes liens, car j'utilise des boutons avec macros . La longueur des liens étant trop importante, j'avais trouvé pour solution de faire apparaitre le mot "lien" pour masquer les URL et ainsi gagner en visibilité.

Comme mon tableau se met à jour régulièrement (toutes les 5min), j'imagine que l'utilisation d'une macro sur un tableau temporaire est assez inutile ?

Merci beaucoup,
 

thomasj

XLDnaute Nouveau
Bonjour bluesky12000,

Vous pouvez après importation utiliser une macro pour créer les liens hypertextes.

Si dans Tableau1, colonne Source, il y a bien l'adresse des liens , exécutez :
VB:
Sub Liens()
Dim c As Range
For Each c In [Tableau1[Source]]
    If c <> "" Then c.Hyperlinks.Add c, c
Next
End Sub
A+
Bonjour job75
Je rebondis sur cette situation.
Ce code fonctionne parfaitement.
Une fois la macro lancé, la colonne se colorise en bleu pour signifier que le lien Hypertexte est activé.
Mais pour se rendre sur l'emplacement du lien, il faut ensuite sélectionnez la cellule, faire "entrée" puis ensuite pointer sur la cellule pour aller sur cet emplacement.
si on a beaucoup de lignes, c'est un peu embêtant !
Y aurait-il un moyen de solutionner cela ?

Un grand merci
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Voici comment je traite ce genre de choses.
Dans la requête je construit par concaténation dans une colonne une formule textuelle LIEN_HYPERTEXT préfixée d'une aprostrophe (') '=LIEN_HYPERTEXT( .....;....)
Puis dans l'évènement After_Refresh de la requête je supprime l'apostrophe pour mettre le texte en formule.

Utiliser HYPERLINK et Formula serait certainement préférable à LIEN_HYPERTEXT et FormulaLocal mais bon, je suis le seul à utiliser ce fichier.

Avant j'utilisais la méthode .Replace des objets range pour le remplacement, mais depuis xl 2019 ça veut plus marcher (ou j'ai pas trouvé le truc)


Cordialement
 

Pièces jointes

  • PQ-LiensHyperText.xlsm
    37.9 KB · Affichages: 42

thomasj

XLDnaute Nouveau
Bonjour Roblochon,
C'est effectivement super ta méthode.
J'ai changé mon code en prenant ta méthode. j'ai un peu modifié le code car j'ai des dossiers et des sous-dossiers. Dans ton exemple de ton fichier, cela ne peut pas marcher.
En revanche, j'ai vu ta macro. Bon moi je suis nul en macro. j'ai pris un bout de celle-ci pour l'appliquer au mien et cela marche.
Excel est génial mais de temps en temps, je trouve qu'il faut ruser pour contourner ses "petits" bugs.
Encore un grand merci pour ton fichier
 

Pièces jointes

  • Arborescence_windows_PQ.xlsm
    46.2 KB · Affichages: 19

lennyg

XLDnaute Nouveau
Bonjour j'ai un problème similaire j'aimerais savoir s'il est possible de conserver les liens hypertexe suite a une requête Powerquery je récupére bien toute les informations mais pas le lien hypertexte dois-je ouvrir un nouveau sujet ?

merci pour vos réponses
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour @lennyg

Tel qu'exposé votre problème peut trouver résolution dans ce qui a déjà été fait ici.
Si tel n'est pas le cas, ouvrez une nouvelle discussion en étant plus précis sur le contexte et les conditions.
Joignez un fichier représentatif et sans données confidentielles à votre demande, n'oubliez pas ce que vous avez déjà essayé, y compris ce que vous avez trouvé dans cette discussion.
 

Discussions similaires

Réponses
22
Affichages
3 K

Statistiques des forums

Discussions
312 103
Messages
2 085 325
Membres
102 862
dernier inscrit
Emma35400