Fichier de sauvegarde VBA - 20 exemples faciles - Exemples de code VBA

Ce didacticiel VBA explique comment enregistrer un fichier à l'aide des commandes Enregistrer et Enregistrer sous dans VBA.

Enregistrer le classeur - VBA

La commande VBA Enregistrer 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écifié

Pour enregistrer un classeur, référencez l'objet classeur et utilisez la commande Enregistrer.

1 Classeurs("savefile.xlsm").Enregistrer

Enregistrer le classeur actif

Remarque : il s'agit du classeur actif actuel à partir de with dans le code VBA, qui est différent de ThisWorkbook qui contient le code en cours d'exécution.

1 ActiveWorkbook.Enregistrer

Enregistrer le classeur où le code est stocké

1 Ce classeur.save

Enregistrer tous les classeurs ouverts

Cela parcourra tous les classeurs ouverts, en sauvegardant chacun.

12345 Dim wb comme classeurPour chaque wb dans Application.Workbookswb.EnregistrerWb suivant

Enregistrer tous les classeurs ouverts qui n'ont pas été ouverts en lecture seule

Remarque : l'ouverture d'un classeur en mode Lecture seule empêche l'enregistrement du fichier.
Pour enregistrer le fichier, vous devrez utiliser Enregistrer sous et enregistrer le fichier sous un nom différent.

1234567 Dim wb comme classeurPour chaque wb dans Application.WorkbooksSinon wb ReadOnly alorswb.EnregistrerFin siWb suivant

Enregistrer un classeur défini par une variable

Cela enregistrera un classeur qui a été affecté à une variable d'objet de classeur.

1234 Dim wb comme classeurdéfinir wb = classeurs("savefile.xlsm")wb.sauvegarder

Enregistrer un classeur défini par une variable chaîne

Cela enregistrera un classeur dont le nom a été enregistré dans une variable de chaîne.

1234 Dim wbstring en tant que chaînewbstring = "savefile.xlsm"classeurs (wbstring).save

Enregistrez un classeur défini par l'ordre dans lequel il a été ouvert.

Remarque : le premier classeur ouvert aurait 1, le second 2, etc.

1 classeurs(1).save

Enregistrer un classeur en fonction d'une valeur de cellule

Cela enregistrera un classeur dont le nom se trouve dans une valeur de cellule.

1234 Dim wbstring en tant que chaînewbstring = activeworkbook.sheets("sheet1").range("wb_save").valueclasseurs (wbstring).save

Enregistrer sous - VBA

La commande VBA Enregistrer sous enregistre 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 Enregistrer sous.

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

Syntaxe Enregistrer sous :

123 objet classeur .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 avec parenthèses ou sous forme de variables définies.

Enregistrer en tant qu'exemples de syntaxe :

Enregistrer le classeur sous - même répertoire

1 Nom de fichier ActiveWorkbook.SaveAs : = "nouveau"

ou

1 ActiveWorkbook.SaveAs "nouveau"

ou

1234 Dim wbstring en tant que chaînewbstring = "nouveau"Nom de fichier ActiveWorkbook.SaveAs : = wbstring

Enregistrer le classeur sous - Nouveau répertoire

1 Nom de fichier ActiveWorkbook.SaveAs : = "C:\nouveau"

ou

1234 Dim wbstring en tant que chaînewbstring = "C:\nouveau"Nom de fichier ActiveWorkbook.SaveAs := wbstring=

Classeur Enregistrer sous - Nouveau répertoire, spécifier l'extension de fichier

1 Nom de fichier ActiveWorkbook.SaveAs : = "C:\new.xlsx"

ou

1234 Dim wbstring en tant que chaînewbstring = "C:\new.xlsx"Nom de fichier ActiveWorkbook.SaveAs : = wbstring

Classeur Enregistrer sous - Nouveau répertoire, spécifier l'extension de fichier - Méthode Alt

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

1234 .xlsx = 51' (52 pour Mac).xlsm = 52' (53 pour Mac).xlsb = 50' (51 pour Mac).xls = 56' (57 pour Mac)
1 Nom de fichier ActiveWorkbook.SaveAs : = « C:\nouveau », Format de fichier := 51

Enregistrer le classeur sous - Ajouter un mot de passe pour ouvrir le fichier

1 ActiveWorkbook.SaveAs Nom de fichier := "C:\new.xlsx", Mot de passe := "mot de passe"

Enregistrer le classeur sous - Ajouter 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

1 Nom de fichier ActiveWorkbook.SaveAs : = "C:\new.xlsx", WriteRes := "mot de passe"

Classeur Enregistrer sous - Lecture seule recommandée

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

1 Nom de fichier ActiveWorkbook.SaveAs : = "C:\new.xlsx", ReadOnlyRecommended := TRUE

Autres exemples d'enregistrement sous

Boîte de dialogue Créer Enregistrer sous

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

1 Application.GetSaveAsFilename

Créer une boîte de dialogue Enregistrer sous avec le nom de fichier par défaut fourni

1 Application.GetSaveAsFilename InitialFilename:="test.xlsx"

Créer une boîte de dialogue Enregistrer sous avec le nom de fichier par défaut fourni

1 Application.GetSaveAsFilename InitialFilename:="test.xlsx"

Créer et enregistrer un nouveau classeur

Cela créera un nouveau classeur et l'enregistrera immédiatement.

123456 Dim wb comme classeurDéfinir wb = Workbooks.AddApplication.DisplayAlerts = Fauxwb.SaveAs Nom de fichier : = ”c:\Test1.xlsx”Application.DisplayAlerts = True

Désactiver les alertes d'enregistrement

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

1 Application.DisplayAlerts=Faux

et pour réactiver les alertes :

1 Application.DisplayAlerts=Vrai
wave wave wave wave wave