Fragmenter une colonne en plusieurs

J'ai réussi !!!

Tout est ok : les fichiers sont chargés, la colonne G fractionnée.

Maintenant j'ai une autre question...

Je vais avoir plusieurs fichiers csv, que je téléchargerai régulièrement dans le même répertoire.

Comment faire pour actualiser les requêtes pour qu'elles prennent en compte les nouveaux fichiers qui s'ajoutent ?

Je continue de chercher...mais si quelqu'un a une démarche à m'indiquer...

Merci encore à tous

Bonjour

Quand on utilise Données, Actialiser tout, si la requête est bien configurée pour traiter le dossier, tous les csv présents à ce moment dans le dossier sont pris en compte.

Bonjour,

L'actualisation fonctionne parfaitement

J'en déduis que grâce à vos conseils, ma requête est bien configurée

Si j'osais, j'aurais bien une dernière question... allez, j'ose !

Dans ma requête ci-dessous, après le fractionnement de la colonne G, y a-t-il une possibilité de définir le type "lien hypertexte" ou lieu du type "text" ?

let

Source = Table.SplitColumn(#"EXPORTS CSV","PHOTOS",Splitter.SplitTextByDelimiter("#(lf)",QuoteStyle.Csv),{"PHOTOS.1","PHOTOS.2","PHOTOS.3","PHOTOS.4","PHOTOS.5"}),

#"Type modifié" = Table.TransformColumnTypes(Source,{{"PHOTOS.1", type text}, {"PHOTOS.2", type text}, {"PHOTOS.3", type text}, {"PHOTOS.4", type text}, {"PHOTOS.5", type text}})

in

#"Type modifié"

Dans le type de données, il n'y a pas ce choix.

Du coup je passe par une petite macro VBA, mais s'il était possible de le faire dans ma requête, ça m'éviterait une manip supplémentaire.

C'est possible ?

Merci

RE

A priori pas géré par PowerQuery

On peut créer des formule Hyperlien dans Excel ou dans PowerQyery (

) mais cela risque d'alourdir le classeur

Bonjour,

En effet, ça va alourdir largement...or mon fichier est voué déjà être incrémenté tous les jours...

Du coup, le mieux est de passer par VBA, non ?

J'ai trouvé sur le net une macro qui ressemble à ça :

Sub ConvertToHyperlinks()

Dim Rng As Range

Dim WorkRng As Range

On Error Resume Next

xTitleId = "Convertir en lien Hypertext"

Set WorkRng = Application.Selection

Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)

For Each Rng In WorkRng

Application.ActiveSheet.Hyperlinks.Add Rng, Rng.Value

Next

End Sub

Sauf que....(y a tjs un truc qui ne va pas )

1/ il faut sélectionner les cellules à convertir -> peut-on modifier pour que ça convertissent toutes les cellules non vides comprises dans les colonnes H à L (sauf le titre en 1è ligne) ?

2/ Lorsque je ferme et que j'ouvre à nouveau le fichier les liens ne sont plus actifs -> peut-on faire une mise à jour de la macro ?

Merci encore

Bonjour

Nom de la feuille à adapter

Sub ConvertToHyperlinks()

Dim Plage As Range
Dim x As Integer
'On Error Resume Next
    With Worksheets("Feuil4").ListObjects(1)
        x = .HeaderRowRange.Columns.Count - 7
        Set Plage = .DataBodyRange.Columns(8)
        Set Plage = Plage.Resize(, x)
        For Each Cellule In Plage.Cells
            If Not IsEmpty(Cellule) Then Worksheets("Feuil4").Hyperlinks.Add Cellule, Cellule.Text
        Next Cellule
    End With
End Sub

D'après mes tests les liens marchent après réouverture sous réserve que l'actualisation à l'ouverture soit désactivée

Il faut chainer l'actualisation et ce code donc actualiser par une macro et non le bouton Actualiser tout

La quantité d’hyperliens semble cependant rendre le classeur instable avec un temps de réaction anormal pour l'ouverture du lien et j'ai sans doute beaucoup moins de données que toi (1877)...

Re,

ça semble fonctionner plutôt bien sur mon fichier, sauf que ça court jusqu'à la colonne P au lieu de s'arrêter à la colonne L.

Et quand j'actualise, les seules colonnes qui restent en "activé" sont les colonnes M à P.

De ce que je comprends du code, .dataBodyRange.Columns (8) -> correspond à la 8è colonne du tableau ListObject, don à la colonne H. Jusqu'ici, tout va bien ! J'ai essayé de réduire les colonne en mettant

Par contre, à quoi correspond Set Plage = Plage.Resize(, x) ? Est-ce que c'est là que je peux stopper la procédure à la colonne L ?

Sinon, comme je ne sais pas chaîner les commandes sur le même module, j'ai fait une autre macro d'actualisation avec l'enregistreur de macro, et j'ai fait 2 boutons de commande : l'un avec l'actualisation, l'autre avec la conversion.

A l'ouverture, j'actualise, puis active les liens.

Bonjour,

@78chris,

Pour information (?).

Cdlt.

RE

Bonjour,

@78chris,

Pour information (?).

Cdlt.

PQ - ClickableHyperlinks-1.xlsx

Oui c'est ce que proposait le lien que j'ai donné le 27 décembre 2019, 17:27

Tu fais bien de le rappeler. J'ai testé mais chez moi sauf à effectuer le cherche et remplace après chaque actualisation, cela affiche le texte et n' interprète pas la formule, que j'adapte ou pas la formule pour la version française avec LIEN_HYPERTEXTE et ; au lieu de ,

Peux-tu confirmer que cela fonctionne sur la version US ? Ce ne serait pas le 1er bug de localisation...

Cependant on pourrait prévoir le cherche et remplace dans une macro d'actualisation : cela semble moins perturber le classeur.

@ Miladiouze : es-tu sûr de ne pas avoir changé la macro, notamment oublié le le -7 dans la définition ?

Chez moi x donne 5 donc 5 colonnes de H à L

Bonjour à tous,

Oui, je suis certain d'avoir de ne pas avoir changé la macro, sauf le nom de la feuille que j'ai adaptée.

Le -7 est bien dans la définition.

J'ai essayé à nouveau sur le même fichier "vierge", mais les liens deviennent actifs de la colonne H à la colonne P.

Je te joins le fichier pour tu essaies, si tu veux.

Pour ce qui est du Hyperlinks dans PQ, idem, ça ne fonctionne pas chez moi.

"Cependant on pourrait prévoir le cherche et remplace dans une macro d'actualisation : cela semble moins perturber le classeur." => je suis preneur de toutes les solutions !

Je vais voir si j'y arrive avec l'enregistreur de macro.

Merci

Bonjour,

@78chris,

J'avais mis ce fichier de côté, sans vraiment regarder la chose.

Version FR, n'est pas fonctionnel dans l'état.

En version US (Windows 10 FR), idem.

Ta procédure VBA pour convertir la chaîne en lien hypertexte est donc à retenir.

Bonnes fêtes de fin d'année.

Cordialement.

Re

Oui, je suis certain d'avoir de ne pas avoir changé la macro, sauf le nom de la feuille que j'ai adaptée.

Le -7 est bien dans la définition.

J'ai essayé à nouveau sur le même fichier "vierge", mais les liens deviennent actifs de la colonne H à la colonne P.

Je te joins le fichier pour tu essaies, si tu veux.

Super ! Cela fin 15 jours qu'on bosse sur des exemples non représentatifs !

Il n'y avait rien après la colonne PHOTOS...

Bonjour à tous,

Tout d'abord je vous souhaite à tous une très bonne année 2020

@Jean-Eric => merci pour ta réponse et pour ton aide. Espérons que la version FR opère un rattrapage sur la version US

@78chris => Tu as raison, j'ai fait évoluer mon fichier en fonction de son usage, et j'ai oublié de le mentionner. Désolé pour cette erreur, mais tu n'auras pas bossé pour rien, au contraire, ton aide m'a été précieuse.

Entre les requêtes Power Query, que j'ai découvert grâce à toi sur ce forum, et les idées sur la façon de faire, j'ai pu faire un fichier utile et qui fonctionne, même s'il reste perfectible. Un grand merci !

A bientôt

Bonjour à tous et bonne année

Jean-Eric signalait que même en version US cela ne fonctionne pas.

De mon côté j'ai tenté le cherche et remplace par VBA mais cela n'agit pas.

Donc soit le code que je t’ai donné en adaptant selon ton nombre réelle de colonnes, soit cherche et remplace manuel après chaque actualisation.

Bonjour,

Merci beaucoup pour votre aide.

Je clos le sujet, et peut-être à un prochain casse-tête

Cordialement

Rechercher des sujets similaires à "fragmenter colonne"