Du hast das Prinzip meiner Lösung nicht verstanden. Eine Schleife mit einem einzigen Durchlauf nutzt dir rein garnichts um einen Verlauf darzustellen, ist doch klar, dass hier der Verlauf sofort auf 100% gesetzt wird und dann erst deine Funktion der Outlook UDF aufgerufen wird. Die Schleifenlösung macht nur dann Sinn wenn du ohnehin etwas in Schleifen machst, bei Einzelbefehlen wie filereadtoarray oder eben dieser einen Outlook Funktion müsstest du schon innerhalb der Funktion schauen ob es dort Schleifen gibt und wenn ja dort deine Verläufe aktualisieren.
Ich würde aber davon abraten in fremden UDF Funktionen solche Änderungen einzubauen, da du diese vermutlich auch mal in anderen Scripten nutzen willst und dort vielleicht garkeine Progressbar vorhanden ist. Für Funktionen deren Laufzeit du nicht kennst gibt es wie erwähnt wurde noch marquee Progressbars um zu signalisieren, dass hier noch etwas passiert.
Da du irgendwas von 3 Sekunden für den ersten Teil des Scriptes gesagt hattest würde ich mir da garkeine große Mühe machen und den Verlauf nur ungefähr veranschaulichen, also z.B. so:
Spoiler anzeigen
; Schichtplan CSV Datei von Internetseite einlesen bzw. downloaden.
; -----------------------------------------------------------------------------------------------------------
GUICtrlSetData($progressbar1,1)
GUICtrlSetData($progressbar2,50)
InetGet("http://www.xxxxxxxxxxx.xx/xxxxx.csv", "C:\Outlook-Temp\xxxxx.csv",1,0)
GUICtrlSetData($progressbar1,2)
GUICtrlSetData($progressbar2,100)
; -----------------------------------------------------------------------------------------------------------
; Schichtplan CSV Datei in ein Array lesen
; -----------------------------------------------------------------------------------------------------------
GUICtrlSetData($progressbar2,50)
_FileReadToArray("C:\Outlook-Temp\xxxxx.csv", $neu_file)
_ArrayDelete($neu_file, 0)
GUICtrlSetData($progressbar1,5)
GUICtrlSetData($progressbar2,100)
Global $n_caldays[UBound($neu_file)]
Global $n_entryid[UBound($neu_file)]
Global $n_subject[UBound($neu_file)]
Global $n_start[UBound($neu_file)]
Global $n_end[UBound($neu_file)]
Global $n_AllDayEvent[UBound($neu_file)]
Global $n_ReminderSet[UBound($neu_file)]
Global $n_ReminderMinutesBeforeStart[UBound($neu_file)]
Global $n_Categories[UBound($neu_file)]
Global $n_split
; -----------------------------------------------------------------------------------------------------------
; Vorhandene Outlook Kalendereinträge in Arrays schreiben
; -----------------------------------------------------------------------------------------------------------
GUICtrlSetData($progressbar2,10)
Global $oOutlook = _OL_Open()
GUICtrlSetData($progressbar2,20)
Global $aFolder = _OL_FolderAccess($oOutlook, "Personal Folders\Kalender")
GUICtrlSetData($progressbar2,30)
Global $aItems = _OL_ItemFind($oOutlook, "Personal Folders\Kalender", $olAppointment, "", "Categories", "Schichtplan", "Start,EntryID,Subject" , "")
GUICtrlSetData($progressbar2,80)
_ArrayDelete($aItems, 0)
GUICtrlSetData($progressbar1,7)
GUICtrlSetData($progressbar2,100)
EDIT: Wenn die Datei wirklich groß ist und der Download lange braucht schau dir wie gesagt den Background Parameter von inetget an und verwende inetgetinfo um letzlich einen Downloadverlauf zu realisieren. Der Aufwand lohnt aber nicht bei minifiles die sowieso in ein paar ms runtergeladen sind.