Clever-Excel-Forum

Normale Version: Function gibt Fehler "#WERT!" zurück
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo und einen guten Abend,
ich habe folgende Function erstellt.(Vorlage ist das Video von Kai Weissmann, "Google Maps in Excel einbinden)

Code:
Option Explicit
Const APIKey As String = "MEINEKEY"

'Microsoft XML aktivieren
'Microsoft Scripting Runtime aktivieren

Function DISTANZ(Von As String, Nach As String)

'Variablen dimensionieren
Dim URL As String
Dim httpReq As New MSXML2.XMLHTTP60
Dim Antwort As String
Dim JSON As Dictionary
Dim Meter As Long

'URL dimensionieren
URL = "https://maps.googleapis.com/maps/api/directions/json?origin=" & Von & " & Destination = " & Nach & " & Key = " & APIKey

'Web Request
With httpReq

    'Request öffnen
    .Open "Get", URL, False
    .send

    'Antwort speichern
    Antwort = .responseText
   
End With

'JSON abspeichern
Set JSON = JsonConverter.ParseJson(Antwort)

'Meter auslesen
Meter = JSON("routes")(1)("legs")(1)("distance")("value")

'Rückgabewert definieren
DISTANZ = Meter

End Function


Nach Aufruf der Function DISTANZ wird der Fehler "#WERT!" ausgegeben.
Wo steckt hier mein Fehler??

Vielen Dank im Voraus
Hallo,

um das sagen zu können, müsste man deine Datei sehen. Du forderst Texte an, offenbar steht in der Datei was anderes.
Willst Du den API-Key mopsen, Klaus-Dieter?
Denn ohne den funktioniert das Makro sowieso nicht.

Gruß Ralf
Wenn ich den API-Key mit "https://maps.googleapis.com/maps/api/directions/json?origin=Berlin&destination=Hamburg&key=DEINAPIKEY" aufrufe, werden mir alle Ausgaben angezeigt.
Zu viele Leerzeichen im zusammengesetzten URL-String (aus dem Makro)?
Teste mal (wir können das ja nicht):
Code:
URL = "https://maps.googleapis.com/maps/api/directions/json?origin=" & Von & "&Destination=" & Nach & "&Key=" & APIKey
Der Fehler bleibt...schade.

dennoch Danke
Hallo Ralf,

Zitat:Denn ohne den funktioniert das Makro sowieso nicht.

so genau hatte ich mir den Quelltext nicht angesehen.
Moin,

du müsstest halt schrittweise ansetzen, ob der Responsetext in Ordnung ist, ob der JSonParser ein ordentliches Ergebnis zurückgibt, ob der Pfad zum Ergebnis richtig ist und welcher Wert zurückgegeben wird.

Klassisches Debugging eben.

Viel Erfolg 
derHöpp
Was mich ein wenig wundert ist der Rückgabewert #WERT!
Der dürfte doch nur 0 (oder Entfernungs-km) sein oder in den Debugger laufen.
(DISTANZ = Meter | Meter ist long)

Setze mal
Function DISTANZ(Von As String, Nach As String) As Long
Hallöchen,

1)
setzte in der function mal Haltepunkte und prüfe die Inhalte von JSON und Meter
2)
schaue mal in unseren Beispielbereich. Da findest Du bei den Komplettlösungen auch verschiedene Beispiele zum Thema - derzeit oben auf Seite 3.
Seiten: 1 2