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

  • Mittu88

    senior tag

    Sziasztok!

    Egy olyan, fájlokon átívelő makrót szeretnék írni, amivel frissíteni lehet az eredetileg indított fájlt (excelt).
    Ez úgy működne, hogy megnyitom X fájlt. Ez érzékeli, hogy a szerveren egy rejtett mappában van-e olyan nevű fájl, mint ami az X fájl verziója. Ha nincs, akkor megnyitja Y fájlt, ami bezárja X fájlt, lemásolja a szerverről az X új verzióját, majd bezárja önmagát (Y fájlt), esetleg elindja X új verzióját az asztalról.

    Eddig ennyire jutottam: A FinoMin.xlsm az X fájl, az ujverzio.xlsm az Y fájl

    X fájl ide vágó makrója
    Private Sub UserForm_Activate() 'Login userform automatikusan indul a fájl megnyitásakor

    On Error Resume Next
    Application.ScreenUpdating = False

    nincsujverzio = True 'Ha nincs új verzió, igaz, ha van, hamis.
    Call Verzio
    If nincsujverzio = False Then
    MsgBox "Van új verzió!", vbOKOnly
    Workbooks.Open "\\srv01v\database$\FinoMin\ujverzio.xlsm"
    Application.Run "'ujverzio.xlsm'!nyitas"
    End If

    End sub

    Private Sub Verzio()

    Dim verziofajlnev As Variant

    verziofajlnev = Dir("\\srv01v\Database$\FinoMin\")
    While (verziofajlnev <> "")
    If InStr(verziofajlnev, Login.verziolabel.Caption) > 0 Then 'A Login egy űrlap, aminek az egyik labeljén van a verziószám
    nincsujverzio = True
    Exit Sub
    End If
    verziofajlnev = Dir
    nincsujverzio = False
    Wend

    End Sub

    Az ujverzio.xlsm (Y fájl) makrója pedig külön modulban a nyitas, ami igy néz ki:
    Public Sub nyitas()

    Dim fajlnev2 As String
    Dim idozito As Double

    On Error Resume Next

    Application.Visible = True
    fajlnev2 = "FinoMin.xlsm"
    Workbooks(fajlnev2).Saved = True
    Workbooks(fajlnev2).Close 'Eddig jól működik, itt áll meg

    FileCopy "\\srv01v\Database$\FinoMin\FinoMin.xlsm", "C:\Documents and Settings\" & Environ("username") & "\Desktop\FinoMin.xlsm"
    FileCopy "\\srv01v\Database$\FinoMin\FinoMin.xlsm", "C:\Documents and Settings\" & Environ("username") & "\Asztal\FinoMin.xlsm"

    Thisworkbook.Save
    Thisworkbook.Close

    End Sub

    A probléma, hogy amikor fut a kód, a Workbooks(fajlnev2).Close résznél leáll az egész, mivel az eredeti fájl bezárul. Így pont a lényeg, az utána következő másolási folyamat marad ki, ergo nem frissül a fájl az asztalon.
    Légyszi segítsetek, azt se tudom, hogy hogy keressek rá az ilyen problémára fórumokon.

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