Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1048to1052
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

VBA - Strecken aus Google Maps auslesen?

VBA - Strecken aus Google Maps auslesen?
17.02.2009 08:37:00
Axel
Hallo,
ich habe folgende Aufgabenstellung:
Ich habe eine Liste mit 200 Start- und Zielorten, für diese Strecken muss ich die Länge herausfinden.
Da ich keine Lust habe das alles händisch zu tun, hatte ich die Hoffnung dies über VBA zu realisieren.
Beispiel:
Start/Ziel/Strecke
München/Hamburg/XXX
Allerdings habe ich
a. keine Ahnung ob das überhaupt funktioniert und
b. wie ich das mit VBA realisieren soll
Könntet ihr mir da evtl. weiterhelfen?
Gruß
Axel

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Strecken aus Google Maps auslesen?
17.02.2009 09:21:00
Axel
Hallo Bernd,
die letzte Seite habe ich auch schon gefunden, allerdings gelingt mir die Implementierung noch nicht so ganz:

Option Explicit
Sub Entfernung()
Dim IEApp As Object
Dim IEDocument As Object
Dim blnGefunden As Boolean
Dim RouteStr As String
Dim Von As String
Dim Nach As String
Dim Von_PLZ As String
Dim Nach_PLZ As String
Dim Von_Ort As String
Dim Nach_Ort As String
Dim Von_Straße As String
Dim Nach_Straße As String
Dim IEDoc As Object
Dim strTeile As Variant
Dim i As Long
Dim msg As String
blnGefunden = False
Von_PLZ = ""
Von_Ort = "Frankfurt"
Von_Straße = ""
Nach_PLZ = ""
Nach_Ort = "Köln"
Nach_Straße = ""
Von = Adresse(Von_Straße, Von_Ort, Von_PLZ)
Nach = Adresse(Nach_Straße, Nach_Ort, Nach_PLZ)
Set IEApp = CreateObject("InternetExplorer.Application")
IEApp.Visible = False
IEApp.Navigate "http://maps.google.com/maps? _
saddr="
& Von & "&daddr=" & Nach & "&hl=de"
Do: Loop Until IEApp.Busy = False
Set IEDocument = IEApp.Document
Set IEDoc = IEApp.Document
strTeile = Split(IEDoc.Body.innerText, vbCrLf)
'Debug.Print IEDoc.Body.innerText
For i = LBound(strTeile) To UBound(strTeile)
If InStr(1, strTeile(i), "Minuten", vbTextCompare) > 0 Then
blnGefunden = True
msg = "Von: " & Von & vbNewLine & "Nach: " & Nach & vbNewLine & strTeile(i)
End If
Next
If blnGefunden = False Then
MsgBox "Die Adresse konnte nicht decodiert werden." & vbCr & "Falsche PLZ?"
Else
MsgBox msg
End If
IEApp.Quit
Set IEDocument = Nothing
Set IEApp = Nothing
End Sub
Function Adresse(Street As String, City As String, ZIP As String) As String
Dim HStr As String
If Street  "" Then HStr = Street & ","
If ZIP  "" Then HStr = HStr & ZIP & " "
If City  "" Then HStr = HStr & City
Adresse = Trim(HStr)
End Function


Ich bekomme es nicht hin, dass die Eingabe in ein Textfeld erfolgt und dass dort dann "nur" dien Kilometer stehen.
Wenn ihr nen Tipp habt wäre ich dankbar, denn ich werde an diesem Problem wieder Stunden hängen. Aber immer noch besser als die Distanzen per Hand raus zu suchen :D
gruß
Axel

Anzeige
AW: VBA - Strecken aus Google Maps auslesen?
17.02.2009 09:53:00
bst
Hi Axel,
nimm die Funktion von Falkh, der kannst Du die benötigten Angaben via Parameter übergeben.
Das Ergebnis ist hier ein 3-zeiliger Text, nimm davon die 3. Zeile z.B. via Split(strErg,vbLf)(2)
cu, Bernd
AW: VBA - Strecken aus Google Maps auslesen?
17.02.2009 10:34:00
Axel
Hallo Bernd,
grundsätzlich würde deine Idee sicher funktionieren, aber ich bekomme leider keine Informationen, weil meine Eingaben google nicht passen ;)
Naja, dann muss ich wohl per Hand lostigern.
Gruß und Dank
axel
AW: VBA - Strecken aus Google Maps auslesen?
17.02.2009 10:56:00
bst
Hi Axel,
versuche das vielleicht mal so, 'semi-automatisch'.
Von-Bis gehört in Tabelle1 in die Spalten A und B ab Zeile 1.
HTH, Bernd
--
Option Explicit

Sub x()
    Dim IEApp As Object, i As Long
    
    Set IEApp = CreateObject("InternetExplorer.Application")
    IEApp.Visible = True
    
    With Sheets(1)
        For i = 1 To .Cells(1, 1).End(xlDown).Row
            .Cells(i, 3).Value = Entfernung(IEApp, .Cells(i, 1).Value, .Cells(i, 2).Value)
        Next i
    End With
    
    IEApp.Quit
    Set IEApp = Nothing
End Sub

Function Entfernung(IEApp As Object, ByVal von As String, ByVal bis As String) As String
    Dim arText As Variant
    Dim i As Long
    
    IEApp.Navigate "http://maps.google.com/maps?saddr=" & von & "&daddr=" & bis & "&hl=de"
    Do: Loop Until IEApp.Busy = False
    
    While True
        arText = Split(IEApp.Document.Body.innerText, vbCrLf)
        For i = 0 To UBound(arText)
            If InStr(1, arText(i), "Minuten", vbTextCompare) > 0 Then
                Entfernung = arText(i)
                Exit Function
            End If
        Next
        MsgBox "Bitte Route im IE manuell korrigieren"
    Wend
End Function


Anzeige
AW: VBA - Strecken aus Google Maps auslesen?
17.02.2009 15:47:00
Axel
Danke,
jetzt funktioniert es. Allerdings hat er nur 20% automatisch gefunden -.-
Gruß
Axel

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige