Staple1600
XLDnaute Barbatruc
Bonsoir le fil
Suite aux divers échanges avec @jurassic pork dans cette discussion, j'ouvre cette discussion
Le but recherché est de ne pas passer par un tableau structuré pour exploiter le résultat d'une requête PQ
Les essais de @jurassic pork l'ont mené vers le Data Model (ou modèle de données)
Pour ma part, je traine les pieds avec ce biais (qui passe "temporairement" par une feuille)
D'abord la requête PQ
Ensuite en manipulant(*) PQ tout en laissant tourner l'enregistreur de macros, je suis arrivé à ce code VBA
(en faisant Charger dans et en cochant Ajouter au modèle de données)
J'en appelle, non pas à la tendresse, mais aux grands MamaMouchi(*) (l'ironie en moins) de la Requête Puissante pour éclairer mon chemin.
PS: @jurassic pork , je t'invite dans la partie si tu le souhaites
(*) d'autres les nomment: PQwan Kenobi, ou utilisateurs chevronnés de PQ
Suite aux divers échanges avec @jurassic pork dans cette discussion, j'ouvre cette discussion
Le but recherché est de ne pas passer par un tableau structuré pour exploiter le résultat d'une requête PQ
Les essais de @jurassic pork l'ont mené vers le Data Model (ou modèle de données)
Pour ma part, je traine les pieds avec ce biais (qui passe "temporairement" par une feuille)
D'abord la requête PQ
PowerQuery:
let
Source = Json.Document(Web.Contents("https://geo.api.gouv.fr/communes?nom=Rennes")),
AA = Table.FromRecords(Source),
BB = Table.ExpandListColumn(AA, "codesPostaux"),
FIN = Table.Distinct(BB, {"nom"})
in
FIN
(en faisant Charger dans et en cochant Ajouter au modèle de données)
Code:
Sub Macro1()
Dim LOB As ListObject, tablo
Application.ScreenUpdating = False
On Error Resume Next
ActiveSheet.ListObjects(1).Delete
With ActiveSheet.ListObjects.Add(SourceType:=4, Source:=ActiveWorkbook. _
Connections("Requête - Requête1"), Destination:=Range("$A$1")).TableObject
.RefreshStyle = 1
.Refresh
End With
Set LOB = ActiveSheet.ListObjects(1)
tablo = LOB.DataBodyRange.Value
MsgBox "Ville: " & tablo(1, 1) & vbCr & "CP: " & tablo(1, 7) & vbCr & "Population: " & tablo(1, 8)
ActiveSheet.ListObjects(1).Delete
End Sub
Sub Ajout()
Workbooks("Classeur2").Connections.Add2 "Requête - Requête1", _
"Connexion à la requête « Requête1 » dans le classeur.", _
"OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=Requête1;Extended Properties=", """Requête1""", 6, True, False
End Sub
J'en appelle, non pas à la tendresse, mais aux grands MamaMouchi(*) (l'ironie en moins) de la Requête Puissante pour éclairer mon chemin.
PS: @jurassic pork , je t'invite dans la partie si tu le souhaites
(*) d'autres les nomment: PQwan Kenobi, ou utilisateurs chevronnés de PQ