Hej
Det er en spændende omend en smule utaknemlig opgave du har der :-)
Visualt ser jeg følgende system i din opstilling og det du skal sortere efter:
1. De fire cifre til venstre for det sidste mellemrum i filnavnet.
2. Det første tal plus de næste tre cifre i filnavnet.
3. De første fire cifre i filnavnet der er numerisk.
Kan disse forudsætninger tages for gældende?
Vil de altid være gældende eller kan der eksempelvis pludseligt være fem cifre i tallet der skal sorteres på?
Disse forudsætninger synes jeg du skal være meget opmærksom på.
Det vil være super hvis har indflydelse på filnavnets dannelse. Eksempelvis vil det være noget mere sikkert at søge efter noget der står mellem mellemrum 3 og 4.
Har du eventuelt mulighed for at løse opgaven i en større sammehæng end denne hvor udgangspunktet er indholdet af en userform??
Jeg er ikke klar over hvor stærk du er i VBA, jeg selv er ikke særlig fortrolig med userforms og listbox.
Hvis du kan få indholdet af listboxen ud i en streng i stedet, så vil jeg foreslår at du indføje noget kode ala nedenstående for hvert loop du udfører:
Sub sortfiles()
Dim strfilename As String
strfilename = "Afspærring nr PJJ7558 XXCCXX.xlsm"
MsgBox Mid(strfilename, InStrRev(strfilename, " ", -1) - 4, 4)
End Sub
Ovenstående er bare et eksempel. Instrrev funktionen finder placeringen af det første mellemrum fra højre i filnavnet. Herefter trækkes fire fra. Til sidst bruges Mid funktionen med udgangspunkt i førnævnte til at trække de fire tal ud med.
Når du har tallene kan du sortere på dem i stedet for hele listboxens indhold.
Jeg håber det kan bruges.
Men som nævnt, overvej om forudsætningerne er til stede for en løsning ala ovenstående.