Avatar billede tytop Nybegynder
20. februar 2007 - 09:06 Der er 7 kommentarer og
1 løsning

Link til nyeste file

Jeg vil gerne lave et link i excel til en anden excel file, men det skal være til den nyeste version.

I mappen jeg vil linke til ligger der måske 4 filer som alle indeholder dato og tid. Hvordan kan jeg lave en kode der finder den nyeste og linker til den?

Nyeste - 10-02-2007 08.10.xls
Nyeste - 12-02-2007 16.30.xls
Nyeste - 17-02-2007 12.50.xls
Nyeste - 20-02-2007 17.45.xls

Linket ser sådan ud.
C:\Type\test\[Nyeste - 20-02-2007 17.45.xls]1'!$A$1
Avatar billede supertekst Ekspert
20. februar 2007 - 10:06 #1
Const søgeMappe = "C:\Documents and Settings\pb\Skrivebord\2002LinkXLS\Nyeste\"    'tilpasses
Sub findNyeste()
Dim nyeste As String
    nyeste = søgNyeste(søgeMappe)
    indsætHyperLink søgeMappe & nyeste
End Sub
Private Function søgNyeste(folderspec)
Dim tidsStempel As Date, nyeste As Date, nyesteFil As String
Dim fs, f, f1, fc, s
    nyeste = 0
    nyesteFil = ""
   
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder(folderspec)
    Set fc = f.Files
    For Each f1 In fc
        filnavn = f1.Name      'fulde navn
        dato = Mid(filnavn, 10, 10)
        tid = Mid(filnavn, 21, 2) + ":" + Mid(filnavn, 24, 2)
        tidsStempel = dato + " " + tid
        If tidsStempel > nyeste Then
            nyeste = tidsStempel
            nyesteFil = filnavn
        End If
    Next
    søgNyeste = nyesteFil
End Function
Private Sub indsætHyperLink(nyFil)
    Cells(1, 1).Select                              'indsætter link i A1
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=nyFil, TextToDisplay:=nyFil
End Sub
Avatar billede tytop Nybegynder
21. februar 2007 - 08:44 #2
Det ser godt ud, men jeg fik vist ikke udtrykt mig godt nok. Med et link
mente jeg egentlig indholdet af cellen A1 i den nyeste file. dvs. C:\Type\test\[Nyeste - 20-02-2007 17.45.xls]1'!$A$1
Avatar billede supertekst Ekspert
21. februar 2007 - 09:27 #3
Ok - indholdet fra den nyeste fil's A1 skal indsættes i den aktuelle fil/ark1/A1?
Avatar billede tytop Nybegynder
21. februar 2007 - 09:37 #4
Ja ligepræcis
Avatar billede supertekst Ekspert
21. februar 2007 - 09:47 #5
Const søgeMappe = "C:\Documents and Settings\pb\Skrivebord\2002LinkXLS\Nyeste\"    'tilpasses
Dim nyestefil As String
Sub findNyeste()
Dim nXls
    nyestefil = søgNyeste(søgeMappe)
   
    Set nXls = CreateObject("Excel.Application")
    With nXls
        .Workbooks.Open søgeMappe + nyestefil
        værdi = .Sheets(1).Cells(1, 1)
    End With
   
    nXls.Quit
    Set nXls = Nothing
    Cells(1, 1) = værdi
End Sub
Private Function søgNyeste(folderspec)
Dim tidsStempel As Date, nyeste As Date
Dim fs, f, f1, fc, s
    nyeste = 0
    nyestefil = ""
   
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder(folderspec)
    Set fc = f.Files
    For Each f1 In fc
        filnavn = f1.Name      'fulde navn
        dato = Mid(filnavn, 10, 10)
        tid = Mid(filnavn, 21, 2) + ":" + Mid(filnavn, 24, 2)
        tidsStempel = dato + " " + tid
        If tidsStempel > nyeste Then
            nyeste = tidsStempel
            nyestefil = filnavn
        End If
    Next
    søgNyeste = nyestefil
End Function
Avatar billede tytop Nybegynder
21. februar 2007 - 10:09 #6
Hvordan kan det være at dit navn ikke står under accepter?
Avatar billede supertekst Ekspert
21. februar 2007 - 13:19 #7
Fordi du ikke har fået noget svar - endnu - men her er det.
Avatar billede tytop Nybegynder
21. februar 2007 - 13:26 #8
Det virkede fint.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester