Openen van het meest recente excel bestand

Status
Niet open voor verdere reacties.

luus1901

Gebruiker
Lid geworden
21 mei 2009
Berichten
66
Er wordt vrijwel elke werkdag een nieuw bestand gemaakt dat wordt opgeslagen als 2011.08.04 - 2011.08.05 – 2011.08.08 etc.
Het laatste bestand moet gebruikt worden bij het aanmaken van het nieuwe bestand. Hoe schrijf je een macro die het laatste bestand vindt en deze opent?
Luus
 
Hiermee moet je een eind kunnen komen. Eventueel de varialele MijnPad nog aanpassen.

Code:
Sub LaatsteBestand()
Dim MijnPad As String
Dim MijnBestand As String
Dim sFile As String
Dim Datum As Date

    Datum = Date
    ''MijnPad = "D:\_HelpMij\Excel\Test\"
    MijnPad = CurDir
    MijnBestand = MijnPad & Format(Datum, "yyyy.mm.dd") & ".xls"
    
    sFile = Dir(MijnBestand)
    Do While sFile = ""
        Datum = Datum - 1
        MijnBestand = MijnPad & Format(Datum, "yyyy.mm.dd") & ".xls"
        sFile = Dir(MijnBestand)
    Loop
    Workbooks.Open Filename:=sFile

End Sub
 
Michel, hartelijk dank voor de code. De sFile wordt echter nooit gevuld waardoor de lus oneindig is. Ik snap alleen niet waarom dit gebeurd.
Ik zag wel dat er nog een toevoeging nodig is bij [MijnPad = CurDir & "\"]
Heb je nog een idee hoe sFile wel gevuld wordt?

Luus
 
Ik heb twee voorbeeldregels toegevoegd die je kunt gebruiken om het pad in te lezen (en een pad heb je nodig...) CurDir neemt het actuele pad waarin Excel werkt als je de code uitvoert. De regel daarboven kun je gebruiken als je de bestanden altijd uit dezelfde map haalt; in dat geval verandert het pad uiteraard niet. Omdat ik vast en zeker een ander pad heb gebruikt als jij, heb ik die regel dus als commentaar gemerkt. Als je die regel dus activeert i.p.v. MijnPad=CurDir, zal hij wel wat ophalen, lijkt mij.
 
Ik heb gekozen voor het vaste pad omdat daar inderdaad altijd de bestanden staan, maar blijf in de lus hangen. Helaas...
Luus
 
Bedankt voor de tip. Het geeft wel is waar niet het gezochte antwoord op mijn vraag, omdat deze code het meest recente bestand vindt dat gemaakt is en niet het bestand in een bepaalde map.
Ook is het iets te hoog gegrepen voor mij, want ik ben een beginner (maar waarschijnlijk was dat wel duidelijk door mijn vraag).
Luus
 
Dan begrijp jij de functie niet goed vrees ik.
Zet onderstaande in een satndaardmodule.
Wijzig MijnVastPad in de jouw directory, wijzig eventueel de extensie en draai dan de macro Openen.
Code:
Function NewestFile(Directory, FileSpec)
' Returns the name of the most recent file in a Directory
' That matches the FileSpec (e.g., "*.xls").
' Returns an empty string if the directory does not exist or
' it contains no matching files
    Dim FileName As String
    Dim MostRecentFile As String
    Dim MostRecentDate As Date
    If Right(Directory, 1) <> "\" Then Directory = Directory & "\"
    FileName = Dir(Directory & FileSpec, 0)
    If FileName <> "" Then
        MostRecentFile = FileName
        MostRecentDate = FileDateTime(Directory & FileName)
        Do While FileName <> ""
            If FileDateTime(Directory & FileName) > MostRecentDate Then
                 MostRecentFile = FileName
                 MostRecentDate = FileDateTime(Directory & FileName)
             End If
             FileName = Dir
        Loop
    End If
    NewestFile = MostRecentFile
End Function

Sub Openen()
    Const MijnVastPad = "E:\Testbestanden\"
        Workbooks.Open NewestFile(MijnVastPad, "*.xls")
End Sub
 
Sorry voor late reactie, maar was een paar dagen weg.
Ik begrijp inderdaad de functie niet. Heb exact gedaan wat je voorstelt, maar de FileName blijft “”, dus code springt direct naar End If. Bestand wordt niet gevonden.
Toch bedankt voor de hulp.
Luus
 
Heb nu een uitgeklede versie gemaakt van de code en die werkt wel.
Nogmaals bedankt voor de hulp.
Luus
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan