Hallo zusammen,
ich habe erst vor ein paar Monaten mit der Erstellung von Makros mithilfe von VBA begonnen. Einfache Abläufe bekomme ich schon abgebildet, aber bei der folgenden Problemstellung bleibe ich hängen. Ich würde mich riesig über eure Unterstützung freuen.
Zum Sachverhalt: Zur Frachtberechnung von LKWs werden die zu fahrenden Kilometer betrachtet. Hierzu wird in einem Formular ein Start- und ein Zielort eingetragen. Über den Button "Berechnen" startet das Marko, IE wird gestartet und die Orte erfolgreich in Google Maps eingetragen, sodass die Route mit Angabe der Kilometer im IE erscheint. Nun möchte ich jedoch diese Kilometer in die entsprechende Zelle meines Excel-Dokuments zurücklesen.
Kann mir jemand helfen, wie ich diesen Wert aus IE (bzw. Maps) eindeutig in Excel bekomme?
Hier mein bisheriger Code:
Private Sub cbBerechnen_Click()
Dim Von As String
Dim Nach As String
Dim Entfernung As String
Dim IEApp As Object
Dim IEDocument As Object
Dim IEDoc As Object
Dim blnGefznden As Boolean
Dim RouteStr As String
Dim strTeile As Variant
Dim i As Long
Dim msg As String
Dim blnGefunden As Boolean
Von = tbVon.Text
Nach = tbNach.Text
Dim Zeile As Integer
Zeile = 2
Do While Cells(Zeile, 1) <> ""
Zeile = Zeile + 1
Loop
Cells(Zeile, 1) = Von
Cells(Zeile, 2) = Nach
Set IEApp = CreateObject("InternetExplorer.Application")
IEApp.Visible = True
IEApp.Navigate "http://maps.google.com/maps?saddr= " & Von & "&daddr=" & Nach & "&hl=de"
Do: Loop Until IEApp.Busy = False
Set IEDocument = IEApp.Document
strTeile = Split(IEDocument.Body.innerText, vbCrLf)
'Debug.Print IEDoc.Body.innerText
For i = LBound(strTeile) To UBound(strTeile)
If InStr(1, strTeile(i), "Minuten", vbTextCompare) > 0 Then
If IsNumeric(Left(strTeile(i), 1)) = True Then
blnGefunden = True
Entfernung = "Von: " & Von & vbLf & "Nach: " & Nach & vbLf & strTeile(i)
msg = msg & strTeile(i) & vbNewLine
End If
End If
Next i
'If blnGefunden = False Then
' MsgBox "Die Adresse konnte nicht decodiert werden." & vbCr
'Else
' msg = "Von: " & Von & vbNewLine & "Nach: " & Nach & vbNewLine & msg
' Entfernung = msg
'End If
'IEApp.Quit
'Set IEDocument = Nothing
'Set IEApp = Nothing
Unload Me
End Sub
Das Formular sieht wie folgt aus:
Vielen Dank für eure Unterstützung im Voraus!
|