izpis datotek

Pomoč pri izdelavi makrov
Odgovori
Stenly
Prispevkov: 223
Pridružen: Sr Jul 27, 2005 11:29 pm

izpis datotek

Odgovor Napisal/-a Stenly »

Pozdravljeni

Želel bi izpis datotek. Iz starejšega foruma sem našel ustrezno kodo. Koda dela, vendar bi želel, da mi izpiše le ime datoteke (lahko tudi s končnico) in ne celotno ime "Full Name".

Prilagam kodo, žal pa ne vem ukaza , da bi mi izpisal le ime. Prosim za malo pomoči.

Koda: Izberi vse

Sub Isci_datoteke()
'
    Dim i As Long
    Dim ZacetnaCelica As Range

    Set ZacetnaCelica = Worksheets("list1").Range("a1")

    With Application.FileSearch
        .NewSearch
        .LookIn = "c:\Documents and Settings"             ' bolj natančno definirajte, kje naj išče
        .SearchSubFolders = True   ' ali res želite da preišče vse podmape?
        .Filename = "*.doc"
        If .Execute() > 0 Then
            For i = 1 To .FoundFiles.Count
                ZacetnaCelica.Offset(i, 0).Value = .FoundFiles(i)
            Next i
        Else
            MsgBox "Nisem našel ustreznih datotek."
        End If
    End With
End Sub
Lp
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Pozdravljeni,

Za to potrebujete funkcijo, ki "izreže" uime datoteke in se v originalu imenuje ExtractFileName, ena izmed možnosti pa je takšna:

Koda: Izberi vse

Function ExtractFileName(fPath As String) As String
    Dim i As Long, lcut As Long, llen As Long

    i = InStr(i + 1, fPath, "\")
    Do While i > 0
        lcut = i
        i = InStr(i + 1, fPath, "\")
    Loop

    If lcut > 0 Then
        llen = Len(fPath) - lcut
        ExtractFileName = Mid(fPath, lcut + 1, llen)
    Else
        ExtractFileName = ""
    End If
End Function
In potem samo popravite vrstico:

Koda: Izberi vse

ZacetnaCelica.Offset(i, 0).Value = .FoundFiles(i) 

' v vrstico 

ZacetnaCelica.Offset(i, 0).Value = ExtractFileName(.FoundFiles(i))
lp,
Matjaž Prtenjak
Administrator
Stenly
Prispevkov: 223
Pridružen: Sr Jul 27, 2005 11:29 pm

Odgovor Napisal/-a Stenly »

:( , imel sem to v mislih, pa sem mislil, da preveč kompliciram.

Hvala za odgovor in lp.
Odgovori