Dansk Regneark Forum
  Hjælp Hjælp  Søg i forum   Arrangementer   Opret ny bruger Opret ny bruger  Log ind Log ind


Emne lukketUndgå "file in use message"

 Besvar Besvar
Forfatter
P.K.. Se dropdown
Forum Begynder
Forum Begynder


Medlem: 01.Jul.2017
Status: Offline
Point: 17
Direkte link til dette indlæg Emne: Undgå "file in use message"
    Sendt: 15.Nov.2022 kl. 13:24
Jeg har en makro som opdaterer en række regnearks i et givent directory.  Problemet er at andre brugere også kan have regnearket åbent (eller der kan være gået nået galt i lukningen så det systemmæssigt på serveren er "optaget af anden bruger") når min makro kører - og i så tilfælde skal det konkrete regneark bare springes over til næste gang makroen kører.

Det lykkes nogle gange - og andre gange kommer der en prompt op om hvorvidt regnearket skal åbnes for readonly eller ej - og min makro går i stå.  Jeg har forsøgt at komme af med den prompt utallige gange men den bliver ved med at komme i enkelte tilfælde.  

Håber I eksperter kan se en fejl eller 2 i opbygningen af makroen:

Sub OpdaterFiler()
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Dim fil As String
    Dim wkb As Workbook
    Dim wkbCurrent As Workbook
    Set wkbCurrent = ActiveWorkbook
    Dim previousSecurity As MsoAutomationSecurity
    
    'Disable on_open
    previousSecurity = Application.AutomationSecurity
    Application.AutomationSecurity = msoAutomationSecurityForceDisable
    
    fil = Dir(Names("Mappe2").RefersToRange.Value2 & "\*.xlsm")
    
    Do While fil <> ""
       
        Set wkb = Workbooks.Open(Names("Mappe2").RefersToRange.Value2 & "\" & fil, False)
    
        If wkb.Name <> wkbCurrent.Name And wkb.ReadOnly Then
  '      MsgBox ("fil er allerede åben derfor ingen action")
        wkb.Close SaveChanges:=False
        Set wkb = Nothing
       Else
  '       MsgBox ("fil er åben for redigering")
        'Ikke skrivebeskyttet (åbnet af andre)
            wkb.RefreshAll
            wkb.Worksheets("Overblik").Select
            wkb.Worksheets("Overblik").Unprotect
            wkb.Worksheets("Overblik").Range("b1").Value2 = "Fil opdateret"
            wkb.Worksheets("Overblik").Range("c1").Value2 = Now
            wkb.Save
            wkb.Close SaveChanges:=True
            Set wkb = Nothing
        End If
        fil = Dir
    Loop
    'slå til igen
    ' MsgBox ("makro er færdig")
    Application.AutomationSecurity = previousSecurity
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    
End Sub
Til top



Til top
 Besvar Besvar

Skift forum Forum tilladelser Se dropdown

© 2010 - 2024 Dansk Regneark Forum - en del af Excel-regneark.dk