Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1620to1624
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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)
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
Anzeige
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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige