Office: (Office 2007) Entfernung (Strecke) zwischen zwei PLZs berechnen

Helfe beim Thema Entfernung (Strecke) zwischen zwei PLZs berechnen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, ich suche nach einer Möglichkeit auf Grund von Postleitzahlen die Entfernung zweier Orte zu berechnen. Dazu habe ich im Internet bereits... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von cybergnom1, 15. Oktober 2008.

  1. Entfernung (Strecke) zwischen zwei PLZs berechnen


    Hallo,

    ich suche nach einer Möglichkeit auf Grund von Postleitzahlen die Entfernung zweier Orte zu berechnen. Dazu habe ich im Internet bereits Add-Ons wie bspw. Map&Guide oder MapPoint gefunden. Allerdings sind diese alle kostenpflichtig und somit für mich nicht verwendbar bzw. nicht rentabel. Gibt es keine andere (kostenlose) Möglichkeit per Excel solche Entfernung zu berechnen? Es sollen auch nur die Entfernungen sein und kein sonstiger SchnickSchnack...

    Besten Dank schonmal und viele Grüße,
    der gnom

    :)
     
    cybergnom1, 15. Oktober 2008
    #1
  2. EarlFred, 16. Oktober 2008
    #2
  3. Hallo gnom,

    versuch's damit:

    Sub Entfernung()
    Dim Start As Date
    Dim IEApp As Object
    Dim IEDocument As Object
    Dim strURL As String
    von = InputBox("Geben Sie Start-PLZ ein.", "Start", "32791")
    If von = "" Then Exit Sub
    nach = InputBox("Geben Sie Ziel-PLZ ein.", "Ziel", "32756")
    If nach = "" Then Exit Sub
    Set IEApp = CreateObject("InternetExplorer.Application")
    IEApp.Visible = False
    IEApp.Navigate "http://www.falk.de//baseservices/do/routeService;jsessionid=24EBEF0EB55871AC2B2F65ABFA799EEE?#"
    Start = Now
    Do: Loop Until IEApp.Busy = False
    Do: Loop Until IEApp.Busy = False
    Do
    If DateDiff("s", Start, Now) > 5 Then Exit Do
    Loop Until IEApp.ReadyState <> 4
    Set IEDocument = IEApp.Document
    IEDocument.getElementById("station[0].zip").Value = von
    IEDocument.getElementById("station[1].zip").Value = nach
    IEDocument.all.btn_calcRoute.Click
    Application.Wait (Now + TimeValue("0:00:05"))
    Set iedoc = IEApp.Document
    strTeile = Split(iedoc.Body.innerText, vbCrLf)
    For i = LBound(strTeile) To UBound(strTeile)
    If InStr(1, strTeile(i), "Entfernung:", vbTextCompare) > 0 Then
    MsgBox strTeile(i)
    End If
    Next
    IEApp.Quit
    Set IEDocument = Nothing
    Set IEApp = Nothing
    End Sub


    mfg Anton
     
    _anton_, 17. Oktober 2008
    #3
  4. Entfernung (Strecke) zwischen zwei PLZs berechnen

    Hllo Ihr Beiden,

    vielen Dank schonmal für Eure Mühen und die Ansätze!


    @Fred:
    Die Idee is top, allerdings wird bei Benutzung dieser DB nur die Luftlinien-Entfernung berechnet. Ich muss es aber irgendwie hinbekommen, dass all unseren ca. 800 Kunden die jeweils zutrteffende Wegstrecke zum nächsten Vertriebszentrum zugewiesen wird. Das ist so leider nicht ganz möglich...


    @Anton:
    wenn ich den Code ausführe öffnet sich der IE mit ner FALK-Karte von Europa und Excel wirft folgende Meldung aus:


    Entfernung (Strecke) zwischen zwei PLZs berechnen [​IMG]


    Entfernung (Strecke) zwischen zwei PLZs berechnen [​IMG]


    Ich hab zwar einigermaßen solide VBA-Kenntnisse, aber damit kann ich leider garnix anfangen.
    Kann es sein, dass ich hier zu Hause Excel2007 verwende? Ich werde auf alle Fälle mal morgen in der Arbeit mit der 2003er Version testen und mich dann dazu nochmal melden!


    Viele Grüße,
    der gnom
     
    cybergnom1, 19. Oktober 2008
    #4
  5. \@Anton:


    ich habe jetzt das Script mit Excel 2003 getestet und es hat beim ersten Versuch geklappt. Allerdings habe ich das ganze dann nochmals ausprobiert und nun hängt sich Excel jedesmal auf, wenn das Makro ausgeführt wird...

    Wenn ich den Rechner neu starte funktioniert das Script mit Deinen voreingestellten PLZs. Wenn ich dann aber andere PLZs eintrage hängt sich Excel entweder auf oder es passiert garnichts (keine Ausgabe in einer MsgBox)...

    Hast Du da eine Erklärung für?

    Viele Grüße,
    der gnom
     
    cybergnom1, 19. Oktober 2008
    #5
  6. Hallo gnom,

    probier's mal so:

    Sub Entfernung()
    Dim Start As Date
    Dim IEApp As Object
    Dim IEDocument As Object
    Dim strURL As String
    Dim blnGefunden As Boolean
    blnGefunden = False
    von = InputBox("Geben Sie Start-PLZ ein.", "Start", "32791")
    If von = "" Then Exit Sub
    nach = InputBox("Geben Sie Ziel-PLZ ein.", "Ziel", "32756")
    If nach = "" Then Exit Sub
    Set IEApp = CreateObject("InternetExplorer.Application")
    IEApp.Visible = True
    IEApp.Navigate "http://www.falk.de//baseservices/do/routeService;jsessionid=24EBEF0EB55871AC2B2F65ABFA799EEE?#"
    Start = Now
    Do: Loop Until IEApp.Busy = False
    Do: Loop Until IEApp.Busy = False
    Do
    If DateDiff("s", Start, Now) > 5 Then Exit Do
    Loop Until IEApp.ReadyState <> 4
    Set IEDocument = IEApp.Document
    IEDocument.getElementById("station[0].zip").Value = von
    IEDocument.getElementById("station[1].zip").Value = nach
    IEDocument.all.btn_calcRoute.Click
    Application.Wait (Now + TimeValue("0:00:05"))
    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), "Entfernung:", vbTextCompare) > 0 Then
    blnGefunden = True
    msg = 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


    mfg Anton
     
    _anton_, 19. Oktober 2008
    #6
  7. Hallo!

    Vielen Dank für Deine schnelle Hilfe!
    Leider bekomme ich mit dem neuen Code nun für jede beliebige PLZ die Meldung:

    "Die Adresse konnte nicht decodiert werden"


    €dith:
    Falls es Dir hilft:
    Es öffnet sich ja der IE und da steht auf der FALK-Seite:
    "Entweder Stadt oder PLZ müssen angegeben werden"

    Scheint wohl ein Problem beim Übertragen der PLZs zu sein...


    Gruß,
    der gnom
     
    cybergnom1, 20. Oktober 2008
    #7
  8. Entfernung (Strecke) zwischen zwei PLZs berechnen

    Hallo ghom,

    so vllt:

    Sub Entfernung()
    Dim Start As Date
    Dim IEApp As Object
    Dim IEDocument As Object
    Dim strURL As String
    Dim blnGefunden As Boolean
    blnGefunden = False
    von = InputBox("Geben Sie Start-PLZ ein.", "Start", "32791")
    If von = "" Then Exit Sub
    nach = InputBox("Geben Sie Ziel-PLZ ein.", "Ziel", "32756")
    If nach = "" Then Exit Sub
    Set IEApp = CreateObject("InternetExplorer.Application")
    IEApp.Visible = True
    IEApp.Navigate "http://www.falk.de//baseservices/do/routeService;jsessionid=24EBEF0EB55871AC2B2F65ABFA799EEE?#"
    Start = Now
    Do: Loop Until IEApp.Busy = False
    Do: Loop Until IEApp.Busy = False
    Do
    If DateDiff("s", Start, Now) > 5 Then Exit Do
    Loop Until IEApp.ReadyState <> 4
    Set IEDocument = IEApp.Document
    IEDocument.getElementById("station[0].zip").Value = von
    Application.Wait (Now + TimeValue("0:00:01")) '1 sec Pause
    IEDocument.getElementById("station[1].zip").Value = nach
    Application.Wait (Now + TimeValue("0:00:01")) '1 sec Pause
    IEDocument.all.btn_calcRoute.Click
    Application.Wait (Now + TimeValue("0:00:05"))
    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), "Entfernung:", vbTextCompare) > 0 Then
    blnGefunden = True
    msg = 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


    mfg Anton
     
    _anton_, 20. Oktober 2008
    #8
  9. Hallo Anton,

    die Idee mit den Verzögerern war super! jetz lässt sichs ein wenig eingrenzen:

    Auf der FALK-Seite wird die Start-PLZ, welche ich eingebe, nicht übertragen. Es wird immer nur das Feld der Ziel-PLZ mit dem korrekten Wert gefüllt. Die Start-PLZ bleibt aber leer. Von daher auch dann der Fehler: "Entweder Stadt oder PLZ müssen angegeben werden"


    Gruß,
    der gnom
     
    cybergnom1, 20. Oktober 2008
    #9
  10. Hallo gnom,

    versuch mal mit der Pause rumzuspielen:

    Do
    If DateDiff("s", Start, Now) > 15 Then Exit Do 'Pause bis Seite geladen wird
    Loop Until IEApp.ReadyState 4

    mfg Anton
     
  11. Hallo Anton,

    als Antworter hättest du in deinem Code wenigstens ALLE Variablen definieren sollen.

    Auch bei mir findet das Makro kein Ergebnis und bringt die MsgBox 'Die Adresse konnte nicht decodiert werden.'

    Wenn ich mir den strTeile ansehe (siehe meinen Debug.Print), dann findet das Makro den Suchbegriff Entfernung: nicht, den gibt es ganz einfach nicht.

    For i = LBound(strTeile) To UBound(strTeile)
    Debug.Print i & " / " & strTeile(i)
    If InStr(1, strTeile(i), "Entfernung:", vbTextCompare) > 0 Then
    blnGefunden = True
    msg = strTeile(i)
    End If
    Next

    Gruß Peter
     
  12. Es ist richtig, dass der Begriff "Entfernung" nicht vorhanden ist. Das liegt aber daran, dass das Ergebnis der FALK-Abfrage diesen nicht zurückliefern kann. Dadurch, dass der Wert "Start" nicht übrtragen wird schmeißt FALK ne Fehlermeldung zurück und keine Entfernungen...
    Das Problem liegt also darin, dem Web-Interface korrekt die beiden Daten zu übermitteln.


    werde ich machen. Bin allerdings jetzt nicht mehr im Büro, deswegen wird's erst morgen dazu Feedback von mir geben!


    Viele Grüße,
    der gnom
     
    Zuletzt von einem Moderator bearbeitet: 12. Januar 2021
    cybergnom1, 20. Oktober 2008
    #12
  13. Entfernung (Strecke) zwischen zwei PLZs berechnen

    Hallo Anton,

    die Verlängerung der Wartezeit hat absolut nichts gebracht.

    Gruß Peter
     
  14. guten Morgen Ihr Beiden!

    ich habe jetzt ein wenig herumgespielt und mir alles nochmal genau angeschaut... Folgende Fehler führen dazu, dass die Berechnung nicht korrekt ausgeführt wird:

    1. nicht-eindeutige PLZs. Falls eine PLZ nicht eindeutig einem Ort zugewiesen ist (z.B. bei Stadtteilen o.Ä.) muss man bei FALK den gewünschten Ort manuell auswählen. Dies kann das Script nicht abfangen

    2. Auch wenn die PLZs eindeutig sind wird der Benutzer bei FALK dazu aufgefordert Routenoptionen zu wählen und erneut auf "route berechnen" zu klicken.


    Anbei nun das von mir veränderte Script so dass die Entfernungen ausgegeben werden. um die Eindeutigkeit der PLZ zu gewährleisten habe ich noch die Eingabe der Start-/Zielorte mit eingebaut.

    Code:
    Viele Grüße,
    der gnom
     
    cybergnom1, 20. Oktober 2008
    #14
  15. Morgen auch,

    versuche es vielleicht mal mit der OpenGeoDb, siehe Beitrag von EarlFred.

    Das erscheint mir sehr viel einfacher zu sein als die Falk-Seite...

    cu, Bernd
    --
    Code:
     
Thema:

Entfernung (Strecke) zwischen zwei PLZs berechnen

Die Seite wird geladen...
  1. Entfernung (Strecke) zwischen zwei PLZs berechnen - Similar Threads - Entfernung Strecke PLZs

  2. Leerzeilen entfernen

    in Microsoft Word Hilfe
    Leerzeilen entfernen: Hallo in die Runde, ich habe das Problem bzw. den Wunsch in einem DOC die Leerzeilen zu entfernen und das per Makro. Allerdings gelingt es nicht Hintergrund das DOC wird aus einer Dot-Datei...
  3. Tabelle in jedem Dokument

    in Microsoft Word Hilfe
    Tabelle in jedem Dokument: Hi, ich habe heute Mittag in einem Word-Dokument eine Tabelle eingefügt. Jetzt ist - quasi als Standard-Einstellung - in jedem neu geöffneten Dokument eine solche Tabelle[IMG] , die ich leider...
  4. Wie diese Trennlinie entfernen?

    in Microsoft Word Hilfe
    Wie diese Trennlinie entfernen?: Hallo allerseits, In einem Dokument wird mir diese unerwünschte Trennlinie automatisch eingefügt, wenn ich einen Text oder eine Abbildung in das Dokument einfüge oder innerhalb vom Dokument...
  5. Zeichen ab letzter Ziffer entfernen

    in Microsoft Excel Hilfe
    Zeichen ab letzter Ziffer entfernen: Hallo Ich brauche bitte eine Lösung für Excel 2010 ( wenn noch möglich ) und Excel 365 ( wenn möglich ohne VBA ). Zellinhalt in A1: -42/3_XK554/FXK oder 12AKL oder 12aB Ich möchte nun nach der...
  6. office365 Konto aus outlook 2021 entfernen

    in Microsoft Outlook Hilfe
    office365 Konto aus outlook 2021 entfernen: Ich habe ein office365 Konto bei Outlook 2021 hinzugefügt. Jetzt wollte ich dieses wieder vollständig entfernen. Dazu habe ich über Datei / Kontoeinstellungen /Kontoeinstellungen das Konto...
  7. Hintergrundfarbe kann nicht entfernt werden

    in Microsoft Word Hilfe
    Hintergrundfarbe kann nicht entfernt werden: Hallo, Ich bin keine Anfänger, sondern kenne mich leidlich gut aus. Allerdings scheint dies trickreich zu sein. Man öffne eine Powershell-ISE und eine neue Worddatei in der man ein paar Absätze...
  8. Outlook UTC Info aus Termin/Einladung entfernen

    in Microsoft Outlook Hilfe
    Outlook UTC Info aus Termin/Einladung entfernen: Hallo zusammen, wir haben folgende Problemstellung: Sobald wir eine Einladung (Termin) versenden, erscheint im Fließtext auch immer in leicht grauer Schrift das UTC Datum/Zeit. Das ist insofern...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden