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
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
let
Ville = Excel.CurrentWorkbook(){[Name="MaVille"]}[Content]{0}[Column1],
Source = Json.Document(Web.Contents("https://geo.api.gouv.fr/communes?nom=" & Ville)),
AAA = Table.FromRecords(Source),
BBB= Table.TransformColumns(AAA, {"codesPostaux", each Text.Combine(List.Transform(_, Text.From), ","), type text})
in
BBB
Sub TestGetPQResult_BIS()
Choix_Commune = InputBox("Nom commune?", "Rennes")
[MaVille] = Choix_Commune
ActiveWorkbook.RefreshAll
GetPQResult "codeINSEE"
End Sub
De quelle option parles-tu?jurassic pork à dit:Attention il y a une option de sécurité à modifier (si un gourou de PQ peut me dire comment éviter d'avoir ce problème)
De quelle option parles-tu?
Je n'ai pas eu de problème en testant ton code.
OuiAu fait ma procédure Add_ConnectionDM fonctionne correctement ?
Private a As Variant
Private Sub UserForm_Initialize()
[MaVille] = InputBox("Nom de la commune ?", "Choix", "Rennes")
ActiveWorkbook.Connections("Requête - pq_INSEE").Refresh
End Sub
Private Sub CommandButton1_Click()
a = Feuil3.ListObjects(1).DataBodyRange.Value
a = Application.Index(a, Evaluate("row(1:" & UBound(a) & ")"), Array(1, 3, 5))
ListBox1.List = a
End Sub
Sub Show_USF()
UserForm1.Show 0
End Sub
Hello,Pour ma gouverne et par curiosité, je cherche toujours comment passer un paramètre pas le biais de VBA à une requête PQ.
(ici en l'occurrence le nom de la ville)
let
Source = Json.Document(Web.Contents("https://geo.api.gouv.fr/communes?nom=" & MaVille)),
AAA = Table.FromRecords(Source),
BBB= Table.TransformColumns(AAA, {"codesPostaux", each Text.Combine(List.Transform(_, Text.From), ","), type text})
in
BBB
Sub TestGetPQResult()
Dim bm As New cBenchmark
Choix_commune = "Ger"
'Choix_Commune = InputBox("Nom commune?", "Rennes")
ChangeParameterValue "MaVille", Choix_commune
ActiveWorkbook.RefreshAll
GetPQResult "RecupCodeINSEE"
End Sub
Sub ChangeParameterValue(ParameterName As String, ParameterValue)
Dim qry As WorkbookQuery
Dim formula As Variant
Set qry = ActiveWorkbook.Queries(ParameterName)
formula = Split(qry.formula, " meta [")
If VarType(ParameterValue) = vbString Then
formula(0) = """" & ParameterValue & """"
Else
formula(0) = ParameterValue
End If
qry.formula = Join(formula, " meta [")
End Sub
Sub TestGetPQResult()
' Dim bm As New cBenchmark
Choix_Commune = InputBox("Nom commune?", "Rennes")
ChangeParameterValue "MaVille", Choix_Commune
ActiveWorkbook.RefreshAll
End Sub