Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

UPS-Trackingstatus

Forumthread: UPS-Trackingstatus

UPS-Trackingstatus
17.04.2018 09:43:18
Reinhard
Hallo,
ich bin schon lange aus der VBA-Welt raus, leider. Nun holt mich die Vergangenheit ein und ich bräuchte eine Lösung für folgendes Problem.
Ich hab hier eine Excelliste, in der gibt es eine Spalte (L), in der untereinander in jeweils eigenen Spalten eine Menge UPS-Trackingnummern stehen. Nun müsste ich einmal am Tag per Makro deren Status abfragen können und in die jeweils nebenstehende Zelle (in Spalte M) darstellen lassen. Hierbei sind für mich nur folgende Stati relevant:
- Auftrag bearbeitet: Bereit für UPS (also nach Auftragserstellung)
- Abgeholt/Versendet
- Zugestellt
Wenn Status bereits Zugestellt, braucht das Makro diese Trackingnummer nicht mehr abfragen.
Die Excelliste lebt, es kommen immer wieder neue Zeilen mit neuen Trackingnummern hinzu, aktuell hat die Original-Tabelle über 1300 Einträge.
Kann mir hierzu jemand ein wenig unter die Arme greifen?
Danke und Gruß
Reinhard
PS: im Anhang eine reduzierte Excel-Tabelle
https://www.herber.de/bbs/user/121086.xlsx
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: es wird gehen
17.04.2018 09:55:03
Fennek
Hallo,
von Hand ist es möglich: Eingabe der Nr in
https://wwwapps.ups.com/WebTracking/track?loc=de_DE
zeigt, dass eine zufällig ausgewählte Nummer real war.
Excel kann die Codes aus den Zellen in die Webseite übergebn und die Antwort auswerten. Also etwas Geduld.
mfg
(ich lese mit, kann aber keinen Code schreiben)
Anzeige
AW: bis 25 auf einmal
17.04.2018 10:04:32
Fennek
https://wwwapps.ups.com/WebTracking/track?loc=de_DE&actpan=3
DIe Antwort steht in:
"kleiner Zeichen" a href="javascript:void(0)" onclick="javascript:return false;" class="infoAnchor ups-link_light helpIconR ups-tt_legacy" id="tt_spStatus2"
Zugestellt
/a
AW: offen (owT)
17.04.2018 10:06:20
Fennek
AW: UPS-Trackingstatus
17.04.2018 11:13:25
chao.soft
Hallo Reinhard,
versuch es mal mit folgendem Code. Ich benutze ihn schon länger und es funktioniert wunderbar. Ich habe (hoffentlich) alles auf deine Beispieltabelle angepasst. Die Stati musst du dir nur selber filtern oder Ähnliches.

Sub checkUPS()
Dim trackingNumber As String, trackingURL As String
Dim trackingCode As Variant
Dim IEexp As InternetExplorer: Set IEexp = New InternetExplorer
Dim lastRow As Long, i As Long
lastRow = Tabelle1.Cells(Rows.Count, "L").End(xlUp).Row
For i = 2 To lastRow
If Tabelle1.Cells(i, "M").Value  "Zugestellt" Then
trackingNumber = Tabelle1.Cells(i, "L").Value
trackingURL = "http://wwwapps.ups.com/WebTracking/processInputRequest?HTMLVersion=5.0&loc=de_DE& _
Requester=UPSHome&tracknum=" & trackingNumber & "&AgreeToTermsAndConditions=yes&ignore=&track.x=25&track.y=16"
IEexp.Visible = False
IEexp.Navigate trackingURL
Do While IEexp.readyState  4: DoEvents: Loop
Dim inputElement As Object
Set inputElement = IEexp.Document.getElementById("tt_spStatus")
If (Not inputElement Is Nothing) Then
Tabelle1.Cells(i, "M").Value = Trim(inputElement.innerText)
Else
Tabelle1.Cells(i, "M").Value = "Fehler"
End If
End If
Next
IEexp.Quit
Set IEexp = Nothing
End Sub
Vorsicht: Am Anfang bzw. bei vielen abzufragenden Nummern ist das Skript ein wenig langsam und braucht seine Zeit.
Beste Grüße
chaosoft
Anzeige
AW: UPS-Trackingstatus
17.04.2018 11:38:12
Reinhard
Hey chasoft,
vielen Dank dafür. Leider nutze ich aufgrund der besseren Performance den Chrome-Browser, wie baue ich den ein?
Danke und Gruß
Reinhard
AW: UPS-Trackingstatus
17.04.2018 12:49:04
Reinhard
hat sich erledigt, funktioniert bestens!!!
Vielen Dank nochmals *DaumenHoch*
AW: UPS-Trackingstatus
18.04.2018 10:51:59
Reinhard
Sodala,
soweit funktioniert ja alles, nur leider kommt ab und an die Fehlermeldung "Objekt erforderlich (Fehler 424)". De Fehler kommt wie gesagt nicht immer, ich bin ein wenig verwirrt.
Hier der aktuelle Code:
Sub checkUPS()
UserForm1.Show vbModeless
Dim trackingNumber As String, trackingURL As String
Dim trackingCode As Variant
Dim IEexp As InternetExplorer: Set IEexp = New InternetExplorer
Dim lastRow As Long, i As Long
lastRow = Tabelle1.Cells(Rows.Count, "L").End(xlUp).Row
For i = 2 To lastRow
If Tabelle1.Cells(i, "M").Value  "Zugestellt" Then
trackingNumber = Tabelle1.Cells(i, "L").Value
trackingURL = "http://wwwapps.ups.com/WebTracking/processInputRequest?HTMLVersion=5.0&loc=de_DE& _
_Requester=UPSHome&tracknum=" & trackingNumber & "&AgreeToTermsAndConditions=yes&ignore=&track.x=25&track.y=16"
IEexp.Visible = False
IEexp.Navigate trackingURL
Do While IEexp.readyState  4: DoEvents: Loop
Dim inputElement As Object
Set inputElement = IEexp.Document.getElementById("tt_spStatus")
If (Not inputElement Is Nothing) Then
Tabelle1.Cells(i, "M").Value = Trim(inputElement.innerText)
Else
Tabelle1.Cells(i, "M").Value = "Fehler"
End If
End If
Next
IEexp.Quit
Set IEexp = Nothing
UserForm1.Hide
End Sub

Anzeige
AW: UPS-Trackingstatus
18.04.2018 16:30:41
UweD
Hallo
mit den angegebenen ID's ging es bei mir
Kann es sein, dass der Fehler bei Echtdaten nur da kommt, bei Trackingnummern, die UPS nicht kennt.
ggf Fehlerbehandlung dafür einbauen.
LG UweD
;
Anzeige

Infobox / Tutorial

UPS-Trackingstatus in Excel automatisieren


Schritt-für-Schritt-Anleitung

Um den UPS-Trackingstatus in Excel automatisch abzufragen, kannst Du ein VBA-Makro verwenden. Hier sind die Schritte:

  1. Öffne Excel und lade die Datei, in der Du den UPS-Trackingstatus abfragen möchtest.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" > Einfügen > Modul.

  4. Kopiere den folgenden Code in das Modul:

    Sub checkUPS()
       Dim trackingNumber As String, trackingURL As String
       Dim IEexp As Object: Set IEexp = CreateObject("InternetExplorer.Application")
       Dim lastRow As Long, i As Long
       lastRow = Tabelle1.Cells(Rows.Count, "L").End(xlUp).Row
    
       For i = 2 To lastRow
           If Tabelle1.Cells(i, "M").Value <> "Zugestellt" Then
               trackingNumber = Tabelle1.Cells(i, "L").Value
               trackingURL = "http://wwwapps.ups.com/WebTracking/processInputRequest?HTMLVersion=5.0&loc=de_DE&Requester=UPSHome&tracknum=" & trackingNumber & "&AgreeToTermsAndConditions=yes"
               IEexp.Visible = False
               IEexp.Navigate trackingURL
    
               Do While IEexp.readyState <> 4: DoEvents: Loop
               Dim inputElement As Object
               Set inputElement = IEexp.Document.getElementById("tt_spStatus")
               If Not inputElement Is Nothing Then
                   Tabelle1.Cells(i, "M").Value = Trim(inputElement.innerText)
               Else
                   Tabelle1.Cells(i, "M").Value = "Fehler"
               End If
           End If
       Next
       IEexp.Quit
       Set IEexp = Nothing
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu Excel.

  6. Führe das Makro aus: Gehe zu "Entwicklertools" > "Makros" > wähle checkUPS und klicke auf "Ausführen".


Häufige Fehler und Lösungen

  • Fehler 424: Objekt erforderlich: Dieser Fehler tritt oft auf, wenn die Trackingnummer ungültig ist oder das Element mit der ID tt_spStatus nicht erkannt wird. Stelle sicher, dass die Trackingnummer korrekt eingegeben wurde und dass der UPS-Server erreichbar ist.

  • Trackingnummer wird nicht gefunden: Wenn der Status nicht abgerufen werden kann, überprüfe, ob die UPS-Trackingnummer korrekt ist. Du kannst die Trackingnummer auch manuell über die UPS-Webseite überprüfen.


Alternative Methoden

Falls Du kein VBA nutzen möchtest, kannst Du auch die folgende Methode versuchen:

  1. Direkte Eingabe der Trackingnummer: Gehe auf die UPS-Webseite und gib die Trackingnummer manuell ein.
  2. Verwende Excel-Funktionen: Du kannst die Funktion WEBSERVICE in Kombination mit FILTERXML verwenden, um Statusinformationen abzurufen, wenn Dein Excel diese Funktionen unterstützt.

Praktische Beispiele

Angenommen, Du hast die folgenden Trackingnummern in Spalte L:

L (Trackingnummer) M (Status)
1Z12345E1512345678
1Z12345E1512345679

Nach dem Ausführen des Makros wird die Spalte M mit dem jeweiligen Status gefüllt, z.B. "Zugestellt" oder "Abgeholt".


Tipps für Profis

  • Erweiterte Fehlerbehandlung: Füge eine Fehlerbehandlung in Dein Makro ein, um spezifische Meldungen zu geben, wenn etwas schiefgeht.
  • Zeitsteuerung: Wenn Du das Makro regelmäßig ausführen möchtest, kannst Du es mit Windows-Taskplaner oder Excel-Triggern automatisieren.
  • Datenbankanbindung: Überlege, die Trackingnummern in einer Access-Datenbank zu speichern, wenn Du mit einer großen Anzahl von Sendungen arbeitest.

FAQ: Häufige Fragen

1. Wie oft kann ich den UPS-Status abfragen?
Du kannst den Status einmal pro Tag abfragen, um sicherzustellen, dass Du nicht von UPS blockiert wirst.

2. Funktioniert das Makro auch in Excel Online?
Das Makro funktioniert nur in der Desktopversion von Excel, da Excel Online keine VBA-Makros unterstützt.

3. Was mache ich, wenn mein Internet Explorer nicht reagiert?
Stelle sicher, dass Dein Internet Explorer auf die neueste Version aktualisiert ist oder wechsle zu einer anderen Methode, wie beispielsweise der manuellen Abfrage auf der UPS-Webseite.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige