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?