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

  • bteebi

    veterán

    Sziasztok! Egy mappából szeretnék egy cellában megadott file-t megnyitni. A file-ok elnevezése lista_"dátum".pdf, pl. lista_201601.pdf. A dátumot kérem be a C4-es cellába. Ezt a makrót írtam hozzá:

    Sub listakereso()
    Dim datum As Long
    datum = ActiveSheet.Range("C4")
    If Dir$("D:\Proba\lista_" & datum & ".pdf", vbDirectory) <> "" Then
    Shell CreateObject("Wscript.Shell").RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\AcroRd32.exe\") & " /A " & Chr(34) & "&zoom=" & 95 & Chr(34) & " " & Chr(34) & "D:\Proba\lista_" & datum & ".pdf" & Chr(34), vbNormalFocus
    Else
    MsgBox "Nem találom a listát!", vbExclamation
    End If
    End Sub

    Teljesen jól működik - vagyis működne -, viszont a file-oknak esetenként több verziója van (és mindegyik verzió benne van a mappában), a fenti példánál maradva pl. lista_201601 v1.pdf (és akár v2, v3, stb.). Emiatt szükség van arra (?), hogy egy loop-pal végignézze az összes file-t:

    Sub listakereso2()
    Dim datum As Long, file As Variant
    datum = ActiveSheet.Range("C4")
    Do While (file <> "")
    If Mid(file, 7, 6) = datum Then
    Shell CreateObject("Wscript.Shell").RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\AcroRd32.exe\") & " /A " & Chr(34) & "&zoom=" & 95 & Chr(34) & " " & Chr(34) & "D:\Proba\" & file & Chr(34), vbNormalFocus
    Exit Sub
    End If
    file = Dir()
    Loop
    MsgBox "Nem találom a listát!", vbExclamation
    End Sub

    Ez azonban még mindig csak ugyanazt csinálja, amit az előző makró, csak jóval bonyolultabban. A feladat pedig igazából az lenne, hogy a legutolsó file verzió nyíljon meg. Ennél viszont már sajnos elfogy nálam a tudomány. Tudnátok ötletet adni arra, hogy hogy lehetne folytatni?

    A legideálisabb megoldás egyébként az lenne, ha pl. egy message boxba (vagy input boxba) össze lenne gyűjtve az összes file verzió (beleértve az eredeti file-t is), és pl. egy radio button-nel (vagy esetleg drop down-nal) lehetne kiválasztani a megfelelő file-t.

    Előre is köszönöm a segítségeteket! :R

    Cancel all my meetings. Someone is wrong on the Internet.

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