Public Sub RefreshFilms() Dim http As Object, url As String, json As String Set http = CreateObject("MSXML2.ServerXMLHTTP.6.0") url = "https://crowdata.ca/excel-demo/data.php" If Range("CategoryFilter").Value <> "" Then url = url & "?category=" & UrlEncode(Range("CategoryFilter").Value) End If http.Open "GET", url, False http.Send json = http.responseText ' Parse JSON, populate the Films sheet, refresh pivots PopulateFilmsSheet ParseJson(json) ActiveWorkbook.RefreshAll End Sub