Re : SOMME.SI (Macro ???)
Re PierreJean
Est t'il possible d'adapter ton ancien code (voir ci-dessous) pour qu'il s'execute aprés ma macro (tout en bas) et donc qu'il remplace les lignes dans "Archive Finale" comme il le fesait trés bien dans ton 1er fichier, comme ça en saisissant une ligne à archiver elle sera copier dans "Archive" et dans "Archive Finale" puis les doublons seront modifier à l'aide de ton code dans la feuille "Archive Finale. Merci
Code pour le remplacement des lignes:
Dim lignes As Collection
Set lignes = New Collection
MsgBox (Range("A65536").End(xlUp).Row)
For n = 3 To Range("A65536").End(xlUp).Row
For m = n + 1 To Range("A65536").End(xlUp).Row
If Range("D" & n) & Range("E" & n) & Range("F" & n) = Range("D" & m) & Range("E" & m) & Range("F" & m) Then
Range("G" & n) = Range("G" & n) + Range("G" & m)
Range("I" & n) = Range("I" & n) + Range("I" & m)
Range("K" & n) = Range("K" & n) + Range("K" & m)
lignes.Add m
End If
Mon Code D'archivage:
Option Explicit
Sub Archiver()
Dim lig As Long, Tablo As Variant, i As Byte, N As Byte
' Mise en tableau
Calculate
With Sheets("Saisie")
If .Range("C3") = "" Then MsgBox "Pas de données à archiver ?": Exit Sub
Tablo = .Range("A3:T3")
' Report des données
With Sheets("Archives")
lig = .Range("B65536").End(xlUp).Row + 1
' Première données
For i = 1 To 5
.Cells(lig, i + 1) = Tablo(1, i)
Next i
' Secondes données
For i = 6 To 20
.Cells(lig, i + 1 + N) = Tablo(1, i)
N = N + 1
Next i
End With
With Sheets("Archives Finale")
lig = .Range("B65536").End(xlUp).Row + 1
' Première données
For i = 1 To 5
.Cells(lig, i + 1) = Tablo(1, i)
Next i
' Secondes données
For i = 6 To 20
.Cells(lig, i + 1 + N) = Tablo(1, i)
N = N + 1
Next i
End With
.Range("F3:T3").ClearContents
End With
End Sub
Next m
Next n
For n = lignes.Count To 1 Step -1
Rows(lignes(n)).Delete
Next n