Sauvegarder un fichier en VBA – 20 Exemples faciles

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

David Gagnon

Last updated on avril 8, 2023

Ce tutoriel VBA explique comment enregistrer un fichier à l’aide des commandes Enregistrer et Enregistrer Sous en VBA

Enregistrer le Classeur – VBA

La commande d’enregistrement VBA enregistre un fichier Excel de la même manière qu’en cliquant sur l’icône Enregistrer ou en utilisant le raccourci Enregistrer (CTRL + S).

Enregistrer un Classeur Spécifique

Pour enregistrer un classeur, faites référence à l’objet classeur et utilisez la commande Enregistrer.

Workbooks("EnregistrerFichier.xlsm").Save

Enregistrer le Classeur Actif

Remarque : Il s’agit du classeur actif actuel à partir duquel le code VBA est exécuté, ce qui est différent de « ThisWorkbook » qui contient le code en cours d’exécution.

ActiveWorkbook.Save

La Programmation VBA Simplifiée

Ne cherchez plus de code VBA en ligne. Découvrez AutoMacro – un générateur de code VBA qui permet aux débutants de programmer leurs propres procédures avec des connaissances minimales en programmation et avec de nombreuses fonctionnalités permettant à tous les utilisateurs de gagner du temps!

vba save as

Enregistrer le Classeur dans Lequel le Code Est Stocké

ThisWorkbook.save

Enregistrer Tous les Classeurs Ouverts

Cette opération permet de parcourir en boucle tous les classeurs ouverts et d’enregistrer chacun d’entre eux.

Dim wb as workbook

For Each wb In Application.Workbooks
wb.Save
Next wb

Sauvegarde Tous les Classeurs Ouverts qui n’Ont Pas Été Ouverts en Lecture Seule

Remarque : l’ouverture d’un classeur en mode lexture seule (« ReadOnly ») empêche l’enregistrement du fichier. Pour enregistrer le fichier, vous devrez utiliser l’option Enregistrer sous et enregistrer le fichier sous un autre nom.

Dim wb as workbook

For Each wb In Application.Workbooks
If not wb.ReadOnly then
wb.Save
End if
Next wb

Sauvegarde d’un Classeur Défini Par une Variable

Cette procédure permet de sauvegarder un classeur qui a été attribué à une variable d’objet classeur.

Dim wb as workbook

set wb = workbooks("EnregistrerFichier.xlsm")
wb.save

Sauvegarde d’un Classeur Défini par une Variable de Type Chaîne

Cette commande permet de sauvegarder un classeur dont le nom a été enregistré dans une variable de type chaîne de texte.

Dim wbchaine as string

wbchaine = "EnregistrerFichier.xlsm"
Workbooks(wbchaine).save

Sauvegarde un Classeur Défini par l’Ordre Dans Lequel il a Été Ouvert.

Remarque : le premier classeur ouvert aura le numéro 1, le deuxième 2, etc.

workbooks(1).save

Enregistrer un Classeur en Fonction de la Valeur d’une Cellule

Cette commande permet d’enregistrer un classeur dont le nom se trouve dans la valeur d’une cellule.

Dim wbchaine as string

wbchaine = activeworkbook.sheets("Feuil1").range("Enregistrer_wb").value
workbooks(wbchaine).save

Enregistrer Sous – VBA

La commande VBA Enregistrer sous (« Save As ») permet d’enregistrer un fichier Excel en tant que nouveau fichier, de la même manière qu’en cliquant sur l’icône Enregistrer sous ou en utilisant le raccourci Enregistrer sous (Alt > F > A).
Ci-dessus, nous avons identifié toutes les façons de spécifier le classeur à enregistrer. Vous pouvez utiliser exactement les mêmes méthodes pour identifier les classeurs lorsque vous utilisez la commande Enregistrer sous.

La fonction Enregistrer sous se comporte de la même manière que la fonction Enregistrer, sauf que vous devez également spécifier le nom du nouveau fichier. En fait, l’option Enregistrer sous permet de définir de nombreuses variables potentielles :

Syntaxe SaveAs :

objet Workbook .SaveAs(FileName, FileFormat, Password, WriteResPassword, _
ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, _
AddToMru, TextCodepage, TextVisualLayout, Local)

Une description complète de tous les arguments SaveAs est incluse ci-dessous. Pour l’instant, nous allons nous concentrer sur les exemples les plus courants.
Remarque : Ces arguments peuvent être saisis sous forme de chaîne de caractères avec des parenthèses ou de variables définies.

Exemples de Syntaxe SaveAs :

Sauvegarde du Classeur Sous – Même Répertoire

ActiveWorkbook.SaveAs Filename:= "Nouveau"

ou

ActiveWorkbook.SaveAs "Nouveau"

ou

Dim wbchaine as string

wbchaine = "Nouveau"
ActiveWorkbook.SaveAs Filename:= wbchaine

Enregistrement du Classeur Sous – Nouveau Répertoire

ActiveWorkbook.SaveAs Filename:= "C:\Nouveau"

ou

Dim wbchaine as string

wbchaine = "C:\Nouveau"
ActiveWorkbook.SaveAs Filename:= wbchaine

Sauvegarde du Classeur Sous – Nouveau Répertoire, Extension de Fichier Spécifiée

ActiveWorkbook.SaveAs Filename:= "C:\Nouveau.xlsx"

ou

Dim wbchaine as string

wbchaine = "C:\Nouveau.xlsx"
ActiveWorkbook.SaveAs Filename:= wbchaine

Enregistrement du Classeur Sous – Nouveau Répertoire, Extension de Fichier Spécifiée – Méthode Alt

Vous pouvez également spécifier le format du fichier dans son propre argument.

.xlsx = 51 '(52 pour Mac)
.xlsm = 52 '(53 pour Mac)
.xlsb = 50 '(51 pour Mac)
.xls = 56 "(57 pour Mac)
ActiveWorkbook.SaveAs Filename:= "C:\Nouveau", FileFormat:= 51

Enregistrement du Classeur Sous – Ajout d’un Mot de Passe pour Ouvrir le Fichier

ActiveWorkbook.SaveAs Filename:= "C:\Nouveau.xlsx", Password:= "MotDePasse"

Sauvegarde du Classeur Sous – Ajout d’un Mot de Passe pour les Privilèges d’Écriture

Si le mot de passe correct n’est pas fourni, le classeur s’ouvre en lecture seule

ActiveWorkbook.SaveAs Filename:= "C:\Nouveau.xlsx", WriteRes:= "MotDePasse"

Enregistrement du Classeur Sous – Lecture Seule Recommandé

TRUE pour afficher une boîte de message, recommandant que le fichier soit ouvert en lecture seule.

ActiveWorkbook.SaveAs Filename:= "C:\Nouveau.xlsx", ReadOnlyRecommended:= TRUE

Autres Exemples d’Enregistrement Sous

Créer une Boîte de Dialogue Enregistrer Sous

Cet exemple génère la boîte de dialogue Enregistrer sous, qui invite l’utilisateur à enregistrer le fichier. Gardez à l’esprit que ce code simple peut ne pas être approprié dans tous les cas.

Application.GetSaveAsFilename

Créez une Boîte de Dialogue Enregistrer Sous avec le Nom de Fichier par Défaut Fourni

Application.GetSaveAsFilename InitialFilename:="test.xlsx"

Créer et Enregistrer un Nouveau Classeur

Cette opération permet de créer un nouveau classeur et de l’enregistrer immédiatement.

Dim wb As Workbook

Set wb = Workbooks.Add
Application.DisplayAlerts = False
wb.SaveAs Filename:=”c:\Test1.xlsx”
Application.DisplayAlerts = True

Désactiver les alertes d’enregistrement

Lorsque vous travaillez avec l’enregistrement en VBA, vous pouvez rencontrer divers avertissements ou invites d’enregistrement. Pour désactiver les avertissements, ajoutez cette ligne de code :

Application.DisplayAlerts=False

et pour réactiver les alertes :

Application.DisplayAlerts=True

vba-free-addin

Module Complémentaire d'Exemples de Code VBA

Accédez facilement à tous les exemples disponibles sur le site.

Naviguez simplement dans le menu, cliquez, et le code sera inséré directement dans votre module. Module complémentaire .xlam.

(Aucune installation requise!)

Téléchargement gratuit

Retour aux exemples de code VBA