Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Anders (software)

Excel hoe nieuwste file openen

None
8 antwoorden
  • Hoi,

    Ik heb een macro gemaakt om wat zaken automatisch af te handelen, deze opent o.a. een file (.log). Ik wil nu graag dat ie de nieuwste file opent, hoe doe ik dat?
    Eerst probeerde ik het om in de folder de meest recente file bovenin te krijgen door de folder automatisch te sorteren op datum, maar ik zie dat het niet altijd werkt.

    huidige code:

    Workbooks.OpenText Filename:= _
    "C:\Apps\IMPRESS\*.log" _
    , Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
    :=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:= _
    False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array _
    (1, 1), Array(2, 1), Array(3, 1))
  • Maak gebruik van het FileSystemObject. In het menu Extra (Tools) kies je Referenties (References) en selecteer je "Microsoft Scripting Runtime".
    Hierin vind je een aantal objecten (met name FileSystemObject, Folder en File heb je nodig), waarmee je de creatiedatum van een bestand kunt opvragen. Dit kun je bijvoorbeeld gebruiken in een functie die de naam van het meest recente bestand teruggeeft.
  • Hoi,

    helaas zie ik deze functie niet in de versie van Excel (9.0…) :(

    is er nog een andere mogelijkheid?
  • Hoi,
    Ik heb nu nog een probleem dat de onderstaande Sub's niet werken (komt doordat 1e Sub geen End Sub heeft, maar ik weet niet hoe ik anders het stukje van de 'nieuwste file' kan bepalen)…..


    Sub Button1_Click()
    '
    ' Button1_Click Macro
    ' Macro recorded 24-09-2005 by

    ' modified by

    ' hieronder wordt de nieuwste file bepaald
    Sub ShowFileInfo(filespec)
    Dim fs, f, s
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFile(filespec)
    s = "Created: " & f.DateCreated
    MsgBox s
    End Sub
    '
    ChDir "C:\Apps\IMPRESS"
    Workbooks.OpenText Filename:= _
    "C:\Apps\IMPRESS\*.log" _
    , Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
    :=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:= _
    False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array _
    (1, 1), Array(2, 1), Array(3, 1)) & f.DateCreated

    Cells.Select
    Selection.Copy
    Cells.Select
    ActiveSheet.Paste
    Columns("B:B").Select
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlToLeft
    Cells.Select
    Selection.AutoFilter
    Selection.ColumnWidth = 48
    Selection.AutoFilter Field:=1, Criteria1:="<>"
    Selection.Replace What:="synchactiontypegroup.synchactionType", Replacement _
    :="", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False
    Selection.AutoFilter Field:=1, Criteria1:="=*000*", Operator:=xlAnd
    Range("B1").Select
    End Sub
  • [quote:79235fca01="Andre"]Hoi,

    helaas zie ik deze functie niet in de versie van Excel (9.0…) :(

    is er nog een andere mogelijkheid?[/quote:79235fca01]
    Uhm, misschien had ik wat duidelijker moeten zijn: je moet zelf een functie schrijven die uitzoekt wat het meest recente bestand is.
    [quote:79235fca01="Andre"]
    Ik heb nu nog een probleem dat de onderstaande Sub's niet werken (komt doordat 1e Sub geen End Sub heeft, maar ik weet niet hoe ik anders het stukje van de 'nieuwste file' kan bepalen)….. [/quote:79235fca01]
    Je kan geen Sub in een Sub plaatsen. Als je nu Sub ShowFileInfo etc weghaalt, en de End Sub midden in de procedure, moet het gewoon lopen.
  • Nog een paar hints:
    maak een functie van het type string (Function <naam_van_de_functie>() As String), en stop daarin de code om het meest recente bestand te bepalen.
    Gebruik hierbij het FileSystemObject, het Folder object en het File object.
    Maak ook gebruik van tijdelijke variabelen waarmee je datum en tijd kunt vergelijken.
  • Hoi,

    bedankt voor je tips, maar kom er toch niet uit. Heb op verzoek een optie ingebracht om te kiezen welke file er gebruikt moet worden, het openen en kiezen lukt echter de gekozen file wordt niet gebruikt..:(

    '
    ' Button1_Click Macro
    ' Macro recorded 24-09-2005 by

    ' modified by

    '



    Public Sub DoTheImport()
    Dim FName As Variant
    Dim Sep As String

    FName = Application.GetOpenFilename _
    (filefilter:="Log Files(*.log),*.log,All Files (*.*),*.*")
    If FName = False Then
    MsgBox "You didn't select a file"
    Exit Sub
    End If



    ' End Sub
    ' Sub Button1_Click()
    ChDir "C:\Apps\IMPRESS"
    Workbooks.OpenText Filename:= _
    "C:\Apps\IMPRESS\*.log" _
    , Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
    :=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:= _
    False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array _
    (1, 1), Array(2, 1), Array(3, 1))

    Cells.Select
    Selection.Copy
    Cells.Select
    ActiveSheet.Paste
    Columns("B:B").Select
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlToLeft
    Cells.Select
    Selection.AutoFilter
    Selection.ColumnWidth = 48
    Selection.AutoFilter Field:=1, Criteria1:="<>"
    Selection.Replace What:="synchactiontypegroup.synchactionType", Replacement _
    :="", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False
    Selection.AutoFilter Field:=1, Criteria1:="=*000*", Operator:=xlAnd
    Range("B1").Select
    End Sub
  • Het is opgelost :lol:

    Workbooks.OpenText Filename:= _
    "C:\Apps\IMPRESS\*.log" _
    , Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
    :=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:= _
    False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array _
    (1, 1), Array(2, 1), Array(3, 1))

    veranderd in:

    Workbooks.OpenText Filename:= _
    FName _
    , Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
    :=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:= _
    False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array _
    (1, 1), Array(2, 1), Array(3, 1))

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.