Sub Salva_KPI() Dim WB0 As Workbook Dim WB1 As Workbook Dim SH0 As Worksheet Dim SH1 As Worksheet Dim Rng As Range Dim n As Variant Dim sts As Variant Const sFg0 As String = "KPI" Application.Calculation = xlCalculationManual Application.ScreenUpdating = True Set WB0 = ThisWorkbook Set SH0 = WB0.Sheets(sFg0) Set WB1 = Application.Workbooks.Open("W:Management Team\Daily Meeting\DATABASE DAILY MEETING 2020\Daily meeting 2020_database.xlsx", 3, False) Set SH1 = WB1.Sheets(sFg0) With SH0 If .AutoFilterMode Or .FilterMode Then On Error Resume Next .ShowAllData End If End With With SH1 If .AutoFilterMode Then Set Rng = .AutoFilter.Range On Error Resume Next If Rng.Rows.Count > Rng.SpecialCells(xlCellTypeVisible).Rows.Count Then .ShowAllData End If End If SH0.Range("B4:Q500").Copy .Range("B4").PasteSpecial xlPasteValues SH0.Range("A3:Q3").AutoFilter Field:=2, Criteria1:="<>1", Criteria2:="<>7" End With WB1.Save WB1.Close Set WB1 = Nothing SH0.Activate Application.ScreenUpdating = False Application.Calculation = xlCalculationAutomatic Set WB0 = Nothing End Sub
dodo47, 16/03/2020 11:56:ciao che io sappia (spero di sbagliare) non c'è una data di apertura di un file, tuttalpiù quella dell'ultima modifica o della creazione. Se quanto sopra è corretto, il procedimento potrebbe essere: all'apertura del file da controllare, viene alimentato (in append) un txt con data e ora, in modo che l'ultimo record sia quello relativo alla data più recente di apertura. Quando dall'altro file si cerca di copiare, prima si va ad analizzare l'ultimo record di tale txt. Questo per grandi linee. saluti