Presque bon merci !
Les deux seuls soucis rencontres c est que les n°de commande du jour j sont associes au jour j+1 et que le jour et le mois sont inverses. Mais sinon effectivement en faisant tourner le prog on parvient a obtenir un bel historique![]()
Je crois avoir reussi a corrige le pb de decalage en modifiant ainsi ton code :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets("Historiques").Range("B" & [B65536].End(xlUp).Row + 1).Value = _
[date_commande].Text
Sheets("Historiques").Range("A" & [B65536].End(xlUp).Row).Value = _
[n_commande].Text
[n_commande].ClearContents
End Sub
Private Sub Workbook_Open()
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim NC_DC As Range
Dim Sh1 As Worksheet
Dim Sh2 As Worksheet
Set Sh1 = Sheets("BCommandes")
Set Sh2 = Sheets("Historiques")
Dim Fin As Long
Fin = Sh1.Range("B65536").End(xlUp).Row
Set NC_DC = Sh1.Range(Cells(Fin, 1), Cells(Fin, 2))
If Application.WorksheetFunction.CountA(NC_DC) = 2 Then
Sh2.Range("B" & Sh2.[B65536].End(xlUp).Row + 1) = NC_DC(2).Value
Else
MsgBox "Vous n'avez pas saisi de numéro de commande"
End If
End Sub
Re
Une variante
Code:Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim NC_DC As Range Dim Sh1 As Worksheet Dim Sh2 As Worksheet Set Sh1 = Sheets("BCommandes") Set Sh2 = Sheets("Historiques") Dim Fin As Long Fin = Sh1.Range("B65536").End(xlUp).Row Set NC_DC = Sh1.Range(Cells(Fin, 1), Cells(Fin, 2)) If Application.WorksheetFunction.CountA(NC_DC) = 2 Then Sh2.Range("B" & Sh2.[B65536].End(xlUp).Row + 1) = NC_DC(2).Value Else MsgBox "Vous n'avez pas saisi de numéro de commande" End If End Sub