Bonjour Leviel, bonjour le forum,
Une règle d'or du VBA est d'éviter autant que tu le peux les Select et autres Activate inutiles. Il ne font que ralentir l'exécution du code et sont source de nombreux bugs. Ci-dessous ton premier code modifié. Dis-nous si ça fonctionne...
Sub Sauvegarder_zone_tri()
Dim rep As VbMsgBoxResult
Set R = Worksheets("RECAP")
Set B = Worksheets("Base")
If B.Range("B4") <> "" Then
rep = MsgBox("Etes-vous certain(e) de vouloir enregistrer zone de tri ?", vbYesNo)
If rep = vbNo Then Exit Sub
R.Unprotect
B.Range("A21:A56").Copy
R.Range("B1").End(xlDown).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
B.Range("C21:C56").Copy
R.Range("C1").End(xlDown).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
R.Protect DrawingObjects:=False, Contents:=True, Scenarios:=False 'Protéger la feuille
B.Protect DrawingObjects:=False, Contents:=True, Scenarios:=False 'Protéger la feuille BASE information secteur tri
MsgBox "La zone de tri à été enregistré !"
nomfichier = ThisWorkbook.FullName
'DestinationFile = "Z:\poubelle\"
DestinationFile = "Z:\Blanchisserie\Suivi du linge sans code barre\2-Zone expédition\" 'Chemin d'accés à modifier
ThisWorkbook.SaveAs (DestinationFile & ThisWorkbook.Name)
Kill nomfichier
ThisWorkbook.Close False 'sans sauvegarde (True si sauvegarde)
Exit Sub
End If
MsgBox "La date de réception n'a pas été renseignée !"
End Sub