Hallo zusammen,
ich bin noch relativ unbewandert in VBA und steige daher noch nicht hinter jeden Code, den ich so verwende. Ich habe versucht Entfernungen zwischen zwei Orten mittels Google Maps unter Angabe von Ländern, PLZ und Ortsnamen zu ermitteln. Das funktioniert auch schon teilweise, nur schaffe ich es nicht, die reine Entfernung als Zahl aus dem Code zu extrahieren. Ich habe auch nach längerem Suchen, keine passende Lösung für das Durchsuchen des HTML-Quellcodes im Netz gefunden. Kann mir von euch jemand helfen? Im Folgenden der Code, danke schon einmal für jede Antwort! Gruß, Christo
ich bin noch relativ unbewandert in VBA und steige daher noch nicht hinter jeden Code, den ich so verwende. Ich habe versucht Entfernungen zwischen zwei Orten mittels Google Maps unter Angabe von Ländern, PLZ und Ortsnamen zu ermitteln. Das funktioniert auch schon teilweise, nur schaffe ich es nicht, die reine Entfernung als Zahl aus dem Code zu extrahieren. Ich habe auch nach längerem Suchen, keine passende Lösung für das Durchsuchen des HTML-Quellcodes im Netz gefunden. Kann mir von euch jemand helfen? Im Folgenden der Code, danke schon einmal für jede Antwort! Gruß, Christo
Quellcode
- Option Explicit
- Sub Orte()
- Dim i As Integer
- Dim zeile As Long
- With Sheets(1)
- zeile = .Range("A65536").End(xlUp).Row
- For i = 4 To zeile
- .Cells(i, 11).Value = Entfernung(.Cells(i, 4), .Cells(i, 5), .Cells(i, 6), .Cells(i, 7), .Cells(i, 8), .Cells(i, 9))
- Next i
- End With
- End Sub
- Function Entfernung(Von_Land As String, Von_PLZ As String, Von_Ort As String, Nach_Land As String, Nach_PLZ As String, Nach_Ort As String)
- 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 IEDoc As Object
- Dim strTeile As Variant
- Dim i As Long
- Dim msg As String
- Dim F As Integer
- blnGefunden = False
- Von = Adresse(Von_Land, Von_PLZ, Von_Ort)
- Nach = Adresse(Nach_Land, Nach_PLZ, Nach_Ort)
- 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
- Do: Loop Until IEApp.Busy = False
- strTeile = Split(IEDoc.Body.innertext, vbCrLf)
- For i = LBound(strTeile) To UBound(strTeile)
- If InStr(1, strTeile(i), "Minuten", vbTextCompare) > 0 Then
- blnGefunden = True
- Entfernung = strTeile(i)
- End If
- Next
- IEApp.Quit
- Set IEDocument = Nothing
- Set IEApp = Nothing
- End Function
- Function Adresse(Country As String, City As String, ZIP As String) As String
- Dim HStr As String
- If Country <> "" Then HStr = Country & " "
- If ZIP <> "" Then HStr = HStr & ZIP & " "
- If City <> "" Then HStr = HStr & City
- Adresse = Trim(HStr)
- End Function