bonjour
je pense qu'il faut plutôt travailler avec un seul fichier, et qui, s’auto-sauveras journellement avec le nom comme date du jour et un vidage des différentes cellules
tous cela se fera dans thisworkbook
Private Sub Workbook_Open()
Dim Chemin As String, Cel As Range
With Sheets("Stock")
If .Range("DJ2") <> Date Then
UserForm2.Show
End If
End With
Application.ScreenUpdating = False
Application.EnableEvents = False
With Sheets("Stock")
If DateSerial(Year(.Range("F1")), Month(.Range("F1")) + 1, 1) < Now Then
Chemin = ThisWorkbook.Path
Sheets("Stock").Copy
' ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\Sauvegarde - " & .Range("F1") & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\Sauvegarde - " & Month(.Range("F1")) & Year(.Range("F1")) & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
MsgBox ("Un nouveau fichier a été créé sous le nom ''" & ActiveWorkbook.Name & "''. Il restera ouvert à l'écran en arrière-plan." & vbNewLine & vbNewLine & "La feuille ''Stock'' a été actualisée.")
ActiveWorkbook.Save
ThisWorkbook.Activate
.Range("F1") = DateSerial(Year(Now()), Month(Now()), 1)
.Range("F2: BR10001").ClearContents
.Range("CB2:DF" & Rows.Count).ClearContents
End If
' recherche de produit en manque
Sheets("Special").Range("A2:B" & Rows.Count).ClearContents
For Each Cel In .Range("B3:B" & Rows.Count).SpecialCells(xlCellTypeConstants)
If Cel.Offset(0, 3) <= 4 Then
Sheets("Special").Range("A" & Rows.Count).End(xlUp).Offset(1, 0) = Cel.Offset(0, -1).Value
Sheets("Special").Range("B" & Rows.Count).End(xlUp).Offset(1, 0) = Cel.Value
End If
Next
End With
Application.EnableEvents = True
End Sub
j'ai fait un copié collé de ce que j'ai , mais seulement moi , ça se fait que les début du mois
il faut juste l'adapter
cordialement