stehe mal wieder vor einer Aufgabe und ich benötige wieder eure Hilfe! :)
Folgenden Code habe ich im Internet gefunden, bei Ausführen passiert jedoch nichts!
Code:
Option Explicit
Private IEApp As Object
Private objRe As Object
Sub Orte()
Dim i As Long, strVonPLZ As String, strBisPLZ As String
With Tabelle1
If Not isPLZ(.Range("A1").Text, strVonPLZ) Then Exit Sub
Set IEApp = CreateObject("InternetExplorer.Application")
IEApp.Visible = False
Set objRe = CreateObject("vbscript.regexp")
objRe.Pattern = "^(\d+(?:[\D]\d+)? km . .*Minuten)$"
objRe.MultiLine = True
For i = 2 To IIf(Len(.Cells(.Rows.Count, 1)), .Rows.Count, .Cells(.Rows.Count, 1).End(xlUp).Row)
If isPLZ(.Cells(i, 1).Text, strBisPLZ) Then .Cells(i, 2).Value = Entfernung(strVonPLZ, strBisPLZ)
Next i
Set objRe = Nothing
IEApp.Quit
Set IEApp = Nothing
End With
End Sub
Private Function isPLZ(ByVal strVal As String, ByRef strPLZ As String) As Boolean
strPLZ = Trim(strVal)
isPLZ = strPLZ Like "#####"
End Function
Function Entfernung(ByVal strVonPLZ As String, ByVal strBisPLZ As String) As String
Dim IEDocument As Object
Dim objMc As Object
Set IEDocument = IEApp.Document
Set objMc = objRe.Execute(IEDocument.Body.innerText)
If objMc.Count Then Entfernung = objMc(0)
Set objMc = Nothing
Set IEDocument = Nothing
End Function
Was ich vorhabe ist, die Entfernung zwischen der PLZ die in A1 steht und er PLZ die in A2 steht. Die PLZ gebe ich immer per Hand ein und beim Auslösen des Codes soll in B1 die Entfernung in KM ausgegeben werden, und in C1 die Fahrzeit!
Kann mir jemand helfen und den Code meinen Vorhaben anpassen?
Für eure Hilfe danke ich im Voraus
LG aus Nürnberg
Alexandra
ich habe hier etwas gefunden.
Das scheint zu funtionieren, wenn man die Adressdaten wie folgt erfasst:
Arbeitsblatt mit dem Namen 'Tabelle1'
A
B
C
D
1
Straße
PLZ
Ort
Entfernung
2
Mittelstr.
58285
Gevelsberg
3
Königsallee
40212
Düsseldorf
Hier der dazu gehörige Code:
Code:
Option Explicit
Sub Orte()
Dim i As Integer
Dim zeile As Long
With Sheets(1)
zeile = .Range("A65536").End(xlUp).Row - 1
For i = 2 To zeile
.Cells(i + 1, 4).Value = Entfernung(.Cells(i, 1), .Cells(i, 2), .Cells(i, 3), .Cells(i + 1, 1), .Cells(i + 1, 2), .Cells(i + 1, 3))
Next i
End With
End Sub
Function Entfernung(Von_Straße As String, Von_PLZ As String, Von_Ort As String, Nach_Straße 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
blnGefunden = False
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)
For i = LBound(strTeile) To UBound(strTeile)
If InStr(1, strTeile(i), "Minuten", vbTextCompare) > 0 Then
blnGefunden = True
Entfernung = "Von: " & Von & vbLf & "Nach: " & Nach & vbLf & strTeile(i)
End If
Next
If blnGefunden = False Then
MsgBox "Die Adresse konnte nicht decodiert werden." & vbCr & "Falsche PLZ?"
Else
End If
IEApp.Quit
Set IEDocument = Nothing
Set IEApp = Nothing
End Function
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
Wie gesagt, nicht ganz mein Backround. Vielleicht kann jemand der anderen VBA-ler den Code anpassen.
ich habe vor über 2 Jahren mal was zusammengestellt, siehe Anhang. Du kannst hier oben 2 Ausgangspunkte eintragen und darunter in der Tabelle verschiedene Ziele.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 4 Nutzer sagen Danke an schauan für diesen Beitrag:4 Nutzer sagen Danke an schauan für diesen Beitrag 28 • Haupi0581, , BigSix, Mexxim
Kannst du mir den Code noch so anpassen, dass wirklich nur die PLZ in A1 und A2 eingegeben werden müssen und dann nur die KM in B1 und die Zeit in C1 angezeigt werden?
Das wäre echt super, und würde mir unheimlich weiterhelfen!!!!!
Für deine Hilfe bedanke ich mich im Voraus
LG aus Nürnberg
Alexandra
super, es funktioniert perfekt! Das einzige das noch nicht ganz passt, ist die Zeit!
Wenn ich bei googlemaps die Entfernung zwischen 90427 und 80331 eingebe dann kommen 3 Vorschläge und da wird komischerweise die Entfernung von dem ersten Vorschlag was ja passt nur die Zeit von dem 2 oder 3. Vorschlag! Was muss ich ändern, damit auch die Zeit vom ersten Vorschlag genommen wird?