Sub Archive()
Dim DLsaisie%, DLArchives%, Mem_Calculation, Compteur&
Mem_Calculation = Application.Calculation
With Application
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With
On Error GoTo Gere_Erreurs
DLsaisie = Worksheets("Saisie").Range("F65500").End(xlUp).Row ' dernière ligne de Saisie
If DLsaisie > 3 Then
With Worksheets("Archives")
.Cells(1 + .Range("B65500").End(xlUp).Row, 2).Range("A1:G" & DLsaisie - 3).Value = Worksheets("Saisie").Cells(4, 6).Range("A1:G" & DLsaisie - 3).Value ' copie de la colonne F vers la colonne B
DLArchives = .Range("B" & .Rows.Count).End(xlUp).Row
End With
Worksheets("Saisie").Range("F4:k" & DLsaisie).ClearContents ' effacer tableau de saisie
With Worksheets("Base de données ")
.Range("G3").FormulaArray = "=MAX(IF(Archives!R4C2:R" & DLArchives & "C2='Base de données '!RC5,Archives!R4C3:R" & DLArchives & "C3))"
.Range("H3").FormulaArray = "=MAX(IF(Archives!R4C2:R" & DLArchives & "C2='Base de données '!RC5,Archives!R4C6:R" & DLArchives & "C6))"
.Range("I3").FormulaArray = "=MAX(IF(Archives!R4C2:R" & DLArchives & "C2='Base de données '!RC5,Archives!R4C5:R" & DLArchives & "C5))"
.Range("G3:I3").Copy
.Range("G4:I" & .Range("B" & .Rows.Count).End(xlUp).Row).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End With
MsgBox "Archivage terminé.", vbOKOnly + vbInformation
Else
MsgBox "Aucune donnée à archiver.", vbOKOnly + vbInformation
End If
Gere_Erreurs:
With Application
.Calculation = Mem_Calculation
.ScreenUpdating = True
End With
End Sub