Usare Dir() può andar bene, ma non basta.
In pratica devi fare un ciclo, per leggere tutti i file, così da trovare il più recente confrontando i nomi dei due file. Più o meno così:
codice:
dim sFilename as string
dim sFileRecente as string 
dim pattern as string
dim sParte_Costante as string
sParte_Costante = "xyz"
pattern = sParte_Costante & "*.*"

sFilename = Dir(pattern)
if sFilename > vbNullstring then
    sFileRecente = sFilename
else
    msgbox "non vi sono file."
    exit sub
end if
do while sFilename <> vbNullString
    sFilename = Dir()
    if sFilename > sFileRecente then
        sFileRecente = sFilename
    end if
loop

debug.print "File recente = " & sFileRecente

Ho scritto 'al volo', quindi controlla ed occhio ad eventuali errori.