Enregistrement automatique à la fermeture du fichier

Bonjour,

J'aimerais que dans la macro suivante il y ai l'enregistrement automatique à la fermeture sans aucun message, c'est à dire que lorsque je ferme le fichier et bien qu'il y ai un enregistrement automatique.

A mon avis il faut utiliser le code

 Application.DisplayAlerts = False
   ActiveWorkbook.Save
  Application.DisplayAlerts =  true

Voici ma macro dans ThisWorkbook

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim dernligne As Long, derncol As Long
Dim dernligneCol As Long, derncolCol As Long
Dim TabPrevision As Variant, TabRecap As Variant, sh As Worksheet, NomService As String, NomFichier As String

Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual

CopieDansFichier Sheets("Params").Cells(3, 1) & "\" & Sheets("Params").Cells(3, 2), "Previsionnel_Mensuel", 11, Sheets("Params").Range("NomService").Value

CopieDansFichier Sheets("Params").Cells(3, 1) & "\" & Sheets("Params").Cells(2, 2), "Recap_HeureS", 12, Sheets("Params").Range("NomService").Value

Application.ThisWorkbook.Save
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic

End Sub
Sub CopieDansFichier(FichierCible As String, FeuilleCible As String, NumColTri As String, NomService As String)
Dim TableauLignes As Variant, DerLig As Long, DerLigOrigine As Long

With ActiveWorkbook.Worksheets(FeuilleCible)
    If .FilterMode = True Then .ShowAllData
    DerLigOrigine = .Range("A" & Rows.Count).End(xlUp).Row
'    derncol = .Cells(1, .Cells.Columns.Count).End(xlToLeft).Column
    TableauLignes = .Range(.Cells(2, 1), .Cells(DerLigOrigine, 15)).Value
End With

Workbooks.Open Filename:=FichierCible, ReadOnly:=False

'suppression des lignes du service

DerLig = ActiveWorkbook.Worksheets(FeuilleCible).Range("A" & Rows.Count).End(xlUp).Row
ActiveWorkbook.Worksheets(FeuilleCible).Range("$A:$K").AutoFilter Field:=NumColTri, Criteria1:=NomService
ActiveWorkbook.Worksheets(FeuilleCible).Rows("2:" & DerLig).SpecialCells(xlCellTypeVisible).Delete

If ActiveWorkbook.Worksheets(FeuilleCible).AutoFilterMode = False Then
    ActiveWorkbook.Worksheets(FeuilleCible).Rows("1:1").AutoFilter
Else
    ActiveWorkbook.Worksheets(FeuilleCible).Rows("1:1").AutoFilter
    ActiveWorkbook.Worksheets(FeuilleCible).Rows("1:1").AutoFilter
End If
'If ActiveWorkbook.Worksheets(FeuilleCible).FilterMode = True Then ActiveWorkbook.Worksheets(FeuilleCible).ShowAllData
DerLig = ActiveWorkbook.Worksheets(FeuilleCible).Range("A" & Rows.Count).End(xlUp).Row

ActiveWorkbook.Worksheets(FeuilleCible).Range("A" & DerLig + 1 & ":O" & DerLig + DerLigOrigine - 1) = TableauLignes

ActiveWorkbook.Save
ActiveWorkbook.Close

End Sub

Merci pour votre aide

Bonjour Snowkite,

Du coup tu as essayé ce que tu penses ?

( dans la partie "Workbook_BeforeClose" et "CopieDansFichier")

Problème résolu, il suffisait de mettre

Application.ScreenUpdating = True
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic

Avant celui si

Application.ThisWorkbook.Save
Application.DisplayAlerts = True

Et non l'inverse

Application.ThisWorkbook.Save
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Rechercher des sujets similaires à "enregistrement automatique fermeture fichier"