Comment fermer un classeur Excel via VBA ?

Pour fermer un fichier Excel, vous devez utiliser la méthode « Fermer ». Avec cette méthode, vous pouvez spécifier si vous souhaitez enregistrer les modifications ou non. Et, si vous souhaitez enregistrer et fermer un fichier qui n’est pas encore enregistré, vous pouvez spécifier le chemin où vous souhaitez l’enregistrer avant de le fermer.

Voici la syntaxe de la méthode close.

Workbook.Close (SaveChanges, FileName, RouteWorkbook)
fermer un classeur avec vba

Étapes pour fermer un classeur

  1. Spécifiez le classeur que vous souhaitez fermer.
  2. Utilisez la méthode close avec ce classeur.
  3. Dans la méthode du code, indiquez si vous souhaitez enregistrer le fichier ou non.
  4. À la fin, mentionnez le chemin de l’emplacement où vous souhaitez enregistrer le fichier avant de fermer.

Dans ce didacticiel, nous examinerons différentes manières de fermer un classeur dans Excel à l’aide de VBA.

Liens utiles : Exécuter une macroEnregistreur de macrosVisual Basic EditorManuel de macros personnelles

Fermer un classeur sans enregistrer

Si vous souhaitez enregistrer le classeur actif sans enregistrer, vous devez utiliser un code comme celui-ci.

ActiveWorkbook.Close SaveChanges:=False

Dans ce code, j’ai spécifié le « False » pour l’argument « SaveChanges ». Ainsi, VBA ignorera s’il y a des modifications dans le classeur qui ne sont pas enregistrées. Et si vous souhaitez fermer un classeur spécifique, vous pouvez utiliser le nom de ce classeur. Tout comme le code suivant.

Workbooks("book1").Close SaveChanges:=False

Si vous avez des données dans le classeur et que vous ignorez l’argument « Enregistrer les modifications », Excel affichera une boîte de dialogue pour confirmer si vous souhaitez enregistrer le classeur ou non. Le point est le suivant : il est préférable de spécifier l’argument « SaveChanges » même s’il est facultatif.

Fermer un classeur après l’avoir enregistré

Comme vous l’avez vu, il existe un argument dans la méthode CLOSE pour spécifier l’emplacement du chemin. Disons que vous souhaitez enregistrer le « Book6 » dans le dossier sur le bureau. Voici le code que vous devez utiliser.

Workbooks("Book6").Close _
SaveChanges:=True, _
Filename:="C:UsersDellDesktopmyFoldermyFile.xlsx"

Ce code va enregistrer le classeur « Book6 » dans le dossier enregistré sur mon bureau sous le nom « myFILE.xlsx ». Mais voici une chose dont vous devez vous occuper : si vous avez déjà un classeur portant le même nom, il remplacera ce fichier par le nouveau.

Ne vous inquiétez pas, il existe une solution que vous pouvez utiliser. Le code suivant vérifie s’il existe un fichier portant le nom que vous souhaitez utiliser

Sub vba_close_workbook()
Dim wbCheck As String
wbCheck = Dir("C:UsersDellDesktopmyFoldermyFile.xlsx")
If wbCheck = "" Then
    Workbooks("Book6").Close _
    SaveChanges:=True, _
    Filename:="C:UsersDellDesktopmyFoldermyFile.xlsx"
Else
    MsgBox "Error! Name already used."
End If
End Sub

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *