Bonjour
Si la dernière ligne maximum de votre facture est toujours la ligne 30, supprimez votre macro Enregistrer et mettez ces deux codes à la place.
Sub Enregistrer()
With Sheets("archive_factures")
.Rows("2:2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
.Range("B2").NumberFormat = "m/d/yyyy"
With .Range("G2,I2:K2")
.Style = "Comma"
.NumberFormat = "_-* #,##0.000 _€_-;-* #,##0.000 _€_-;_-* ""-""?? _€_-;_-@_-"
End With
.Range("A2") = Sheets("facture").Range("D9").Value
.Range("B2") = Sheets("facture").Range("A14").Value
.Range("C2") = Sheets("facture").Range("D15").Value
.Range("D2") = Sheets("facture").Range("D16").Value
.Range("E2") = Sheets("facture").Range("D17").Value
.Range("F2") = Sheets("facture").Range("D18").Value
.Range("G2") = Sheets("facture").Range("D33").Value
.Range("H2") = Sheets("facture").Range("D34").Value
.Range("H2").NumberFormat = "0%"
.Range("I2") = Sheets("facture").Range("D35").Value
.Range("J2") = Sheets("facture").Range("D36").Value
.Range("K2") = Sheets("facture").Range("D37").Value
End With
Call Effacer
End Sub
Sub Effacer()
With Sheets("facture")
.Range("D9") = WorksheetFunction.Max(Sheets("archive_factures").Range("A:A")) + 1
.Range("D15").ClearContents
.Range("A21:D30").ClearContents
End With
End Sub
- Supprimez votre macro Effacer dans le module 1
Cordialement
Edit :
Une autre suggestion , sur la feuille archive factures , je veux quand je clique sur une facture elle s'affiche à nouveau.
C'est possible mais vu le tableau de votre feuille Archives, vous n'aurez pas les lignes contenant les articles
Dans la première ligne de code changez ceci --> CopyOrigin:=xlFormatFromRightOrBelow