Hirdetés

Új hozzászólás Aktív témák

  • Sziasztok,

    Olvasgatás után arra jutottam, hogy kérnék egy kis segítséget... Van egy mappa, melyben van 50 db excel fájl. Ezek első munkafüzetén lévő adatokat (azonos formátumuk van) kellene egy közös excel munkalapra másolni.

    Alapvetően ez elkészült. Ott vesztettem el a fonalat, hogy az 50 fájl jelszóval védett. Minden fájl neve fix, a hozzá tartozó jelszó is. (minden hónapban össze kell ezeket fűzni).
    Ötletem a következő volt:
    1. bejárom a mappát, mely az 50 fájl nevét tartalmazza.
    2. megnyitás nélkül kiolvasom a fájl nevét/elérési utat (ezzel nem boldogultam), melyből meghatározom a fájl nevét.
    3. Megnyitom a fájl név - jelszó párost tartalmazó fájlt, és ott az első oszlopban megkeresem azt. Kiolvasom a mellette lévő oszlopból a hozzá tartozó jelszót. És ekkor azt a fájlt, ahol az előbb járt a feldolgozás, megnyitom a jelszó beírásával, és indulhat a másolás.

    Van esetleg ettől egyszerűbb megoldás, hogy jelszóval védett fájlból a tartalmat átmásoljam egy közös fájlba?

    Bocsánat, ha nagyon alap dolgot kérdeztem, sok mindent kell még megnéznem ezen a területen :F

    Excelben, VBA-val akarod ezt megoldani? Vagy valamilyen dotnetes nyelven inkább?

    Ha előbbi, akkor nem igazán látom, mi akasztott meg, ha már a feladat lényege elkészült. A 2-es ponthoz segíthet például ez:

    Option Base 1
    Function GetFileNames(directoryPath As String) As String()
    Dim namepathlist() As String
    Dim fshelper As Object
    Dim targetdir As Object
    Dim filecnt%, i%
    On Error Resume Next

    Set fshelper = CreateObject("Scripting.FileSystemObject")
    Set targetdir = fshelper.GetFolder(directoryPath)
    filecnt = targetdir.Files.Count
    If filecnt > 0 Then
    ReDim namepathlist(filecnt, 2)
    i = 1
    For Each f In targetdir.Files
    namepathlist(i, 1) = f.Name
    namepathlist(i, 2) = f.path
    i = i + 1
    Next
    End If
    On Error GoTo 0
    GetFileNames = namepathlist
    End Function

    Persze nem biztos, hogy érdemes külön függvényt írni csak ezért, és akár a Dir() függvényre is rá lehet nézni, aztán amelyik egyszerűbb, azzal menni tovább.

    Ami meg a 3. pontot illeti, ezt nem így csinálnám, de ennek csak praktikus okai vannak. Mielőtt az egész 50-es iteráció elindul, azelőtt kellene beolvasni változókba az összes előírt fájlnevet és jelszót, ezután jöhet a könyvtár aktuális tartalma, lásd fent, és végül egy olyan iteráció, ami az aktuális listán megy végig, és ha talál az adott példányhoz jelszót, akkor elvégzi a már kész lépéseket.

Új hozzászólás Aktív témák