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
|