Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1592to1596
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Mit einer Schleife Werte in Funktion übertragen

Mit einer Schleife Werte in Funktion übertragen
03.12.2017 11:16:33
Julia
Hallo zusammen,
ich habe eine Funktion, mit der ich auf die Google Maps API zugreifen und mir dann die Ergebnisse in meiner Excel ausgeben lasse.
Die Funktion funktioniert auch soweit, mein Problem ist aber, dass ich aktuell den celltype manuell in meiner Funktion ändern muss.
In meinem Excel Sheet gibt es aber eine Spalte (Spalte L), in der die entsprechenden Werte für den celltype schon eingetragen sind.
Kann mir jemand sagen was ich ändern muss, damit mir automatisch wenn ich die Funktion z.B. in M4 eingebe als celltype der Wert von L4 verwendet wird?
Die Funktion sieht bisher wie folgt aus: Function Nearby(Name As String) As Variant Dim Request As New XMLHTTP60 Dim Results As New DOMDocument60 Dim StatusNode As IXMLDOMNode Dim NearbyNode As IXMLDOMNode Dim Node As IXMLDOMNode Dim sz As String Dim celltype As String celltype = Range("L2").Value Request.Open "GET", "https://maps.googleapis.com/maps/api/place/nearbysearch/xml?location=" & _ _ _ Name & "&radius=25&type=celltype&key=AIzaSyA5nFPM_9Ss_X410c35WfoP_obP5UwppRU" & "&sensor=False" Request.send Results.LoadXML Request.responseText Set StatusNode = Results.SelectSingleNode("//status") Select Case UCase(StatusNode.Text) Case "OK" For Each Node In Results.SelectNodes("//PlaceSearchResponse/result/name") sz = sz & Node.nodeTypedValue & ", " Next Nearby = Left(sz, Len(sz) - 2) 'remove last ", " Case "ZERO_RESULTS" Nearby = "Adresse existiert nicht" Case "OVER_QUERY_LIMIT" Nearby = "Serverlimit erreicht" Case Else Nearby = "Unbekannter Fehler" End Select End Function
Schon mal vielen Dank!

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mit einer Schleife Werte in Funktion übertragen
03.12.2017 11:22:21
Sepp
Hallo Julia,
probier mal
celltype = Application.Caller.Offset(0, -1).Value
Gruß Sepp

AW: Mit einer Schleife Werte in Funktion übertragen
03.12.2017 11:50:40
Julia
Hallo Sepp, vielen Dank für die schnelle Antwort. Hat auch funktioniert, ich bin mir jetzt nur nicht ganz sicher was ich alles als Ergebnis bekomme, vllt. kannst du mir ja nochmal helfen.
Ziel der Funktion ist es, alle Einrichtungen im Umkreis von einem bestimmten Radius zu einem bestimmten type zu bekommen.
Kann es sein, dass ich mit deinem Code einfach alle Einrichtungen in der Umgebung bekomme, unabhängig vom type? Das wäre an sich auch ok.
Anzeige
AW: Mit einer Schleife Werte in Funktion übertragen
03.12.2017 11:58:08
Sepp
Hallo Julia,
was steht den in L4 bzw. M4?
Gruß Sepp

AW: Mit einer Schleife Werte in Funktion übertragen
03.12.2017 12:10:08
Julia
In Spalte L stehen die jeweiligen types (z.B. supermarket, shop, restaurant etc.) und in Spalte M soll dann die Funktion "Nearby" eingetragen werden, die ausgibt wie viele "shops" es im Umkreis von 50m noch gibt.
Ich habe celltype in meiner Funktion so definiert wie du es mir gesagt hast. Jetzt wird mir nicht nur angezeigt wie viele "shops" in der Nähe sind sondern auch alle restlichen möglichen types (also auch restaurants etc.), oder?
Anzeige
AW: Mit einer Schleife Werte in Funktion übertragen
03.12.2017 12:24:38
Sepp
Hallo Julia ,
und wo steht 'Name'?
Gruß Sepp

AW: Mit einer Schleife Werte in Funktion übertragen
03.12.2017 12:38:11
Sepp
Hallo Julia,
ich würde beide Parameter der Funktion übergeben.
Public Function Nearby(ByRef Name As Variant, ByRef CellType As Variant) As Variant
Dim Request As New XMLHTTP60
Dim Results As New DOMDocument60
Dim StatusNode As IXMLDOMNode
Dim NearbyNode As IXMLDOMNode
Dim Node As IXMLDOMNode
Dim sz As String

Const apiKey As String = "AIzaSyA5nFPM_9Ss_X410c35WfoP_obP5UwppRU"

Request.Open "GET", "https://maps.googleapis.com/maps/api/place/nearbysearch/xml?location=" & _
  Name & "&radius=25&type=" & CellType & "&key=" & apiKey & "&sensor=False"

Request.send
Results.LoadXML Request.responseText

Set StatusNode = Results.SelectSingleNode("//status")

Select Case UCase(StatusNode.Text)
    
  Case "OK"
    For Each Node In Results.SelectNodes("//PlaceSearchResponse/result/name")
      sz = sz & Node.nodeTypedValue & ", "
    Next
    Nearby = Left(sz, Len(sz) - 2) 'remove last ", "
    
  Case "ZERO_RESULTS"
    Nearby = "Adresse existiert nicht"
    
  Case "OVER_QUERY_LIMIT"
    Nearby = "Serverlimit erreicht"
    
  Case Else
    Nearby = "Unbekannter Fehler"
End Select
End Function

Beispiel:
Tabelle1

 DEFGH
2     
3 48.139306, 11.565132shopSonnenstraße, dean&david, World Coffee Company, BackWerk, Parkhaus Königshof, City Parfümerie, Pommes Freunde München Stachus, munich needs heroes GmbH, Zur Rose Pick-up Service, ProData Consult GmbH, Lebkuchen-Schmidt, Erweitertes Naturkosmetikangebot (z.B. Dr. Bronners, i+m Berlin), NYX Professional Make-up, Sofortsticker, Pizzalotti, BEAUTY Extras, Back Mart, Schampus & Schmarrn GmbH, Passbildservice, München 
4     

Formeln der Tabelle
ZelleFormel
G3=Nearby(E3;F3)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Beispiel:
Gruß Sepp

Anzeige
AW: Mit einer Schleife Werte in Funktion übertragen
03.12.2017 13:06:31
Julia
Super so werd ich es machen! Vielen Dank für die Hilfe.

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige