Sauvegarder un fichier en VBA – 20 Exemples faciles
In this Article
- Enregistrer le Classeur – VBA
- La Programmation VBA Simplifiée
- Enregistrer le Classeur dans Lequel le Code Est Stocké
- Enregistrer Tous les Classeurs Ouverts
- Sauvegarde Tous les Classeurs Ouverts qui n’Ont Pas Été Ouverts en Lecture Seule
- Sauvegarde d’un Classeur Défini Par une Variable
- Sauvegarde d’un Classeur Défini par une Variable de Type Chaîne
- Sauvegarde un Classeur Défini par l’Ordre Dans Lequel il a Été Ouvert.
- Enregistrer un Classeur en Fonction de la Valeur d’une Cellule
- Enregistrer Sous – VBA
- Syntaxe SaveAs :
- Exemples de Syntaxe SaveAs :
- Sauvegarde du Classeur Sous – Même Répertoire
- Enregistrement du Classeur Sous – Nouveau Répertoire
- Sauvegarde du Classeur Sous – Nouveau Répertoire, Extension de Fichier Spécifiée
- Enregistrement du Classeur Sous – Nouveau Répertoire, Extension de Fichier Spécifiée – Méthode Alt
- Enregistrement du Classeur Sous – Ajout d’un Mot de Passe pour Ouvrir le Fichier
- Sauvegarde du Classeur Sous – Ajout d’un Mot de Passe pour les Privilèges d’Écriture
- Enregistrement du Classeur Sous – Lecture Seule Recommandé
- Autres Exemples d’Enregistrement Sous
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!
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