• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Meest recente bestand openen via VBA?

Status
Niet open voor verdere reacties.

reneemettrie

Terugkerende gebruiker
Lid geworden
1 aug 2006
Berichten
1.233
Bestaat er een mogelijkheid, via VBA, om in een bepaalde map het bestand van de meest recente datum te openen?
Denk dat je geen eigenschap van Workbook kunt gebruiken, maar een eigenschap van Windows, maar heb geen idee hoe dit moet...
 
Welke recente datum? Datum aangemaakt? Datum laatst gewijzigd, datum laatst geprint? Het zijn allemaal eigenschappen van een bestand. Windows heeft in deze geen eigenschappen. (kan ze alleen weergeven)
 
Zoiets voor datum/tijd laatste wijziging:
Code:
Sub JongsteDatumTijd()
    Set objShell = CreateObject("Wscript.Shell")
    pad = "[COLOR="#FF0000"]C:\Users\Ed\Documents\Excel\[/COLOR]"
    Bst = "[COLOR="#FF0000"]*.xls*[/COLOR]"
    tmp = Environ("temp") & "\highdate.txt"
    
    objShell.Run ("%comspec% /c dir /b/o-d " & pad & Bst & " > " & tmp), 1, True
    Open tmp For Input As #1
    Line Input #1, Bst
    Close #1
    Kill tmp
    MsgBox pad & Bst
    [COLOR="#008000"]'Workbooks.Open pad & Bst[/COLOR]
End Sub

Pas het rode gedeelte naar wens aan.
Verwijder de enkele quote voor de groene regel om het bestand in Excel te openen.
Die MsgBox regel mag dan weg.
 
Laatst bewerkt:
In één regel.
Als eerbetoon aan snb :)
Code:
Sub Nieuwste()
    Workbooks.Open Split(CreateObject("WScript.Shell").Exec("cmd /c dir /b/o-d/s C:\Users\Public\Documents\*.xls*").StdOut.ReadAll, vbCr)(0)
End Sub
 
Die was ik dus kwijt :)
 
Wat moet je vervolgens met dit bestand doen? Je kan dit soort dingen namelijk ook met PowerQuery doen als je alleen wat gegevens uit het bestand nodig hebt.
 
Bedankt allemaal voor de input. Het was een vraag van iemand die gisteren een cursus "Macro's intro" (zonder of met heel weinig VBA...) volgde en die in april een echte cursus VBA komt volgen.
Wat hij met het bestand gaat doen weet ik niet.
Met WScript.Shell heb ik nog nooit gewerkt. Kan iemand me een linkje geven met een duidelijke uitleg hierover?

Alvast bedankt!
 
ALs het om een VBA cursus gaat zou ik het ook bij native VBA houden en externe tools buiten beschouwing laten:
Code:
Option Explicit

Function GetLatestFile(sPath As String, sFileSpec As String)
    Dim dLatest As Date
    Dim sTemp As String
    If Right(sPath, 1) <> Application.PathSeparator Then
        sPath = sPath & Application.PathSeparator
    End If
    sTemp = Dir(sPath & sFileSpec)
    Do While Len(sTemp) > 0
        If FileDateTime(sTemp) >= dLatest Then
            dLatest = FileDateTime(sTemp)
            GetLatestFile = sTemp
        End If
        sTemp = Dir()
    Loop
End Function

Sub demo()
    MsgBox GetLatestFile("c:\users\renee\documents\", "*.xlsm")
End Sub
 
Hoe moet je hier eigenlijk iemand taggen?

Edmoor, bedankt voor de links!
JKPieterse, dit past idd beter in de VBA Excel cursus. Voorbeeld van zelf een functie maken en van een lus. Kende die FileDateTime functie niet.
 
Jij gaat toch een cursus geven? Over het algemeen kan iemand zich daar voor aanmelden om wat te leren en eventueel vragen te stellen. Toch?
 
Jij gaat toch een cursus geven? Over het algemeen kan iemand zich daar voor aanmelden om wat te leren en eventueel vragen te stellen. Toch?

Begin maar te solliciteren bij de Belgische Spoorwegen :)
Maar vermoed dat ik jou niets kan leren, tenzij je je Frans wat wil bijschaven :)
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan