# Query overpass in vba non funziona

**URL:** <https://forum.italia.it/t/query-overpass-in-vba-non-funziona/49083>\
**Category:** Dati e open data\
**Created:** [2 Agosto 2026, 6:53am UTC](https://forum.italia.it/t/query-overpass-in-vba-non-funziona/49083 "2026-08-02T06:53:45Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sal\_Sal](https://forum.italia.it/user_avatar/forum.italia.it/sal_sal/32/4820_2.png) [@Sal\_Sal](https://forum.italia.it/u/Sal_Sal)\
**Post date:** [2 Agosto 2026, 6:53am UTC](https://forum.italia.it/t/query-overpass-in-vba-non-funziona/49083/1 "2026-08-02T06:53:45Z")

</div>

```auto
Private Sub ScaricaCSVStradeNapoli()

    Dim http As Object
    Dim url As String
    Dim query As String
    Dim risposta As String
    Dim percorsoFile As String

    'url = "https://overpass-api.de/api/interpreter"
    url = "https://overpass-api.de/api/interpreter?data="

    query = _
        "[out:csv(""name"")][timeout:2500];" & vbCrLf & _
        "{{geocodeArea:Napoli}}->.searchArea;" & vbCrLf & _
        "way" & vbCrLf & _
        " [""highway""~""residential|unclassified|tertiary|secondary|primary""]" & vbCrLf & _
        " [""name""]" & vbCrLf & _
        " (area.searchArea);" & vbCrLf & _
        "out;"

    Set http = CreateObject("WinHttp.WinHttpRequest.5.1")

    http.Open "POST", url, False
    http.SetRequestHeader "Content-Type", "text/plain"
    http.Send query

    If http.Status = 200 Then
        risposta = http.ResponseText

        percorsoFile = "C:\TABULATI\strade_napoli.csv"
        Call SalvaTestoSuFile(percorsoFile, risposta)

        MsgBox "CSV salvato in: " & percorsoFile
    Else
        MsgBox "Errore HTTP: " & http.Status & " - " & http.StatusText
    End If

    Set http = Nothing
    
End Sub
Private Sub SalvaTestoSuFile(ByVal filePath As String, ByVal textData As String)

    Dim F As Integer
    F = FreeFile
    Open filePath For Output As #F
    Print #F, textData
    Close #F
    
End Sub

```

---

<div class="post-metadata">

**Author:** ![Valentino\_Agliano](https://forum.italia.it/user_avatar/forum.italia.it/valentino_agliano/32/15965_2.png) [@Valentino\_Agliano](https://forum.italia.it/u/Valentino_Agliano)\
**Post date:** [3 Agosto 2026, 7:54pm UTC](https://forum.italia.it/t/query-overpass-in-vba-non-funziona/49083/2 "2026-08-03T19:54:24Z")

</div>

```plaintext
Private Sub ScaricaCSVStradeNapoli()

    Dim http As Object
    Dim url As String
    Dim query As String
    Dim risposta As String
    Dim percorsoFile As String

    ' 1. URL base corretto per le richieste POST
    url = "https://overpass-api.de/api/interpreter"

    ' 2. Query Overpass corretta
    query = _
        "[out:csv(""name"")][timeout:60];" & vbCrLf & _
        "area[""name""=""Napoli""]->.searchArea;" & vbCrLf & _
        "way" & vbCrLf & _
        " [""highway""~""residential|unclassified|tertiary|secondary|primary""]" & vbCrLf & _
        " [""name""]" & vbCrLf & _
        " (area.searchArea);" & vbCrLf & _
        "out body;"

    Set http = CreateObject("WinHttp.WinHttpRequest.5.1")

    ' Configurazione della chiamata POST
    http.Open "POST", url, False
    http.SetRequestHeader "Content-Type", "text/plain; charset=utf-8"
    http.Send query

    If http.Status = 200 Then
        risposta = http.ResponseText

        percorsoFile = "C:\TABULATI\strade_napoli.csv"
        
        ' Assicurati che la cartella C:\TABULATI\ esista sul disco
        Call SalvaTestoSuFile(percorsoFile, risposta)

        MsgBox "CSV salvato con successo in: " & percorsoFile, vbInformation, "Completato"
    Else
        ' Mostra il dettaglio dell'errore restituito dal server in caso di problemi
        MsgBox "Errore HTTP: " & http.Status & " - " & http.StatusText & vbCrLf & _
               "Dettagli: " & http.ResponseText, vbCritical, "Errore"
    End If

    Set http = Nothing
    
End Sub

Private Sub SalvaTestoSuFile(ByVal filePath As String, ByVal textData As String)

    Dim F As Integer
    F = FreeFile
    Open filePath For Output As #F
    Print #F, textData
    Close #F
    
End Sub

```
