Excel VBA Enregistrer sous

Si vous êtes un utilisateur fréquent de Microsoft Excel, vous devez avoir utilisé la fonction Enregistrer sous, qui vous permet d'enregistrer le classeur actuellement ouvert avec un nom ou un format différent (compatible avec les macros Excel, CSV, PDF, etc.). Vous pouvez également enregistrer le fichier dans un dossier différent à l'aide de cette méthode. Cependant, est-il possible d'utiliser la même fonction sous VBA? La réponse est un oui absolu! Nous avons également la fonction Enregistrer sous sous VBA, ce qui nous aide à effectuer toutes ces tâches susmentionnées avec quelques avantages supplémentaires (évidemment, l'automatisation des choses est l'un des avantages). Dans cet article, nous allons examiner différents exemples de la fonction VBA SAVE AS.

Formule pour la fonction Enregistrer sous dans Excel VBA

Voyons ci-dessous la formule de la fonction Enregistrer sous dans VBA.

Où,

  • FileName - Nom du classeur à enregistrer.
  • FileFormat - Format de fichier dans lequel le fichier doit être enregistré (Ex. Pdf, CSV, etc.)
  • Mot de passe - Mot de passe pour protéger le classeur (le classeur n'est pas accessible sans mot de passe)
  • WriteResPassword - Ecrivez le mot de passe de réservation pour le classeur.
  • ReadOnlyRecommended - Reconnaît si le classeur est enregistré au format en lecture seule ou non.
  • CreateBackup - Détermine si un fichier de sauvegarde pour le classeur est créé ou non.
  • AccessMode - reconnaît le mode d'accès pour le classeur.
  • ConflictResolution - Reconnaît les conflits qui apparaissent lorsque le classeur est partagé et utilisé par plusieurs utilisateurs.
  • AddToMru - Vérifie si le classeur est ajouté sous le fichier récemment utilisé ou non.
  • Local - Vérifie si le classeur est enregistré avec les lois d'Excel (langue locale) ou avec les lois VBA (États-Unis - anglais).

Silence! Beaucoup d'arguments non? Mais si je vous le dis, tous ces arguments sont facultatifs et peuvent être ignorés lors de l'utilisation de la fonction VBA SAVE AS. Cependant, il est vrai que ce sont les arguments qui rendent la fonction VBA SaveAs plus flexible à utiliser. «Expression» au début de la syntaxe n'est rien d'autre qu'une expression contre laquelle cette fonction peut être utilisée. Comme Workbook est l'expression contre laquelle SaveAs peut être utilisé.

Exemples pour enregistrer un fichier Excel à l'aide de la fonction d'enregistrement sous VBA

Voici les différents exemples pour enregistrer un fichier Excel à l'aide de la fonction VBA Save As.

Vous pouvez télécharger ce modèle VBA Save As Excel ici - VBA Save As Excel Template

Exemple # 1 - Comment enregistrer une copie du classeur sous un autre nom?

Voyons comment enregistrer le classeur actuel sous un autre nom.

Suivez les étapes ci-dessous pour utiliser la fonction Enregistrer sous dans Excel VBA:

Étape 1: ajoutez un nouveau module sous Visual Basic Editor (VBE). Accédez à Insérer, puis sélectionnez Module.

Étape 2: Définissez une nouvelle sous-procédure qui peut stocker une macro.

Code:

 Sub SaveAs_Ex1 () End Sub 

Étape 3: Définissez une nouvelle variable qui peut contenir le nom sous lequel le fichier à enregistrer.

Code:

 Sub SaveAs_Ex1 () Dim newName As String End Sub 

Étape 4: Utilisez maintenant l'opérateur d'affectation pour attribuer un nom à cette variable en utilisant le fichier actuel qui peut être enregistré sous.

Code:

 Sub SaveAs_Ex1 () Dim newName As String newName = "Example1" End Sub 

Étape 5: Maintenant, utilisez la fonction SaveAs avec l'argument FileName afin d'enregistrer le fichier sous le nom «Example1».

Code:

 Sub SaveAs_Ex1 () Dim newName As String newName = "Example1" ActiveWorkbook.SaveAs Filename: = newName End Sub 

Étape 6: Ca y est, exécutez maintenant ce code en appuyant sur F5 ou manuellement en utilisant le bouton Exécuter et voyez la sortie.

Vous pouvez voir qu'un fichier portant le nom « Example1 » est en cours d'enregistrement dans Documents .

Si vous auriez pu le noter, le fichier est enregistré en tant que fichier activé par macro, car le fichier d'origine sur lequel j'ai utilisé la fonction SaveAs est un fichier avec macro activé. Cela signifie que cette fonction dans VBA vérifie automatiquement le format de fichier du fichier précédent et l'enregistre dans le même format. De plus, par défaut, le fichier sera enregistré dans Documents sous Ce PC . Cet emplacement par défaut peut être fourni explicitement au moment de la définition du nom de la feuille.

Exemple # 2 - Enregistrement d'un classeur avec un nom fourni par l'utilisateur

Au lieu de définir le nom au départ, est-il possible d'écrire un code qui permet à un utilisateur d'enregistrer la feuille de calcul sous le nom de son choix comme la fonction Excel Save As?

Suivez les étapes ci-dessous pour utiliser la fonction Enregistrer sous dans Excel VBA.

Étape 1: Définissez une nouvelle sous-procédure sous le module nouvellement inséré qui peut stocker la macro.

Code:

 Sub SaveAs_Ex2 () End Sub 

Étape 2: Définissez une nouvelle variable pouvant contenir la valeur du nom défini par l'utilisateur.

Code:

 Sub SaveAs_Ex2 () Dim Spreadsheet_Name As Variant End Sub 

La raison pour laquelle cette variable est définie comme Variant est que ce type de données rend les conventions de dénomination polyvalentes. Par exemple, un utilisateur peut ajouter un caractère spécial supplémentaire (qui est autorisé dans les conventions de dénomination) ou peut également ajouter des dates sous le nom de fichier.

Étape 3: Maintenant, à l'aide d'un opérateur d'affectation et d'une combinaison de fonctions appelée application.GetSaveAsFilename, faites une déclaration qui permet au système de prendre un nom défini par l'utilisateur. Voyez comment cela a été réalisé dans la capture d'écran ci-dessous.

Code:

 Sub SaveAs_Ex2 () Dim Spreadsheet_Name As Variant Spreadsheet_Name = Application.GetSaveAsFilename End Sub 

Étape 4: utilisez IF conditionnel pour vous assurer que le nom entré par l'utilisateur est valide selon les conventions de dénomination.

Code:

 Sub SaveAs_Ex2 () Dim Spreadsheet_Name As Variant Spreadsheet_Name = Application.GetSaveAsFilename If Spreadsheet_Name False Then End Sub 

Cette condition vérifie si le nom donné par l'utilisateur pour enregistrer la feuille de calcul satisfait correctement les conventions de dénomination définies pour nommer un fichier ou non.

Étape 5: Écrivez une déclaration qui est évaluée pour la condition IF donnée.

Code:

 Sub SaveAs_Ex2 () Dim Spreadsheet_Name As Variant Spreadsheet_Name = Application.GetSaveAsFilename If Spreadsheet_Name False Then ActiveWorkbook.SaveAs Filename: = Spreadsheet_Name End Sub 

Ce morceau de code est évalué une fois que la condition IF est vraie. Si c'est le cas, le classeur actif sera enregistré sous le nom défini dans la variable Spreadsheet_Name (qui sera définie par l'utilisateur)

Étape 6: Terminez la boucle IF et exécutez ce code pour voir la sortie.

Code:

 Sub SaveAs_Ex2 () Dim Spreadsheet_Name As Variant Spreadsheet_Name = Application.GetSaveAsFilename If Spreadsheet_Name False Then ActiveWorkbook.SaveAs Filename: = Spreadsheet_Name End If End Sub 

Étape 7: Dès que vous exécutez ce code, vous obtiendrez la boîte de dialogue Enregistrer sous qui vous permettra de taper le nom de votre choix et d'enregistrer le fichier.

Exemple # 3 - Comment enregistrer en tant que fichier au format PDF à l'aide de la fonction SaveAs d'Excel VBA?

Supposons que vous ayez des données comme indiqué ci-dessous dans votre feuille Excel et que vous deviez les convertir en PDF.

Suivez les étapes ci-dessous pour convertir ce fichier en PDF à l'aide de la fonction Enregistrer sous VBA:

Étape 1: définissez une nouvelle sous-procédure pour stocker une macro.

Code:

 Sub SaveAs_PDF_Ex3 () End Sub 

Étape 2: Maintenant, utilisez le code suivant pour enregistrer ce fichier en tant que fichier PDF.

Code:

 Sub SaveAs_PDF_Ex3 () ActiveSheet.SaveAs Filename: = "Vba Save as.pdf" End Sub 

Étape 3: Exécutez ce code et vous verrez un fichier pdf généré sous Ce PC> Documents.

Dans ce code, ActiveSheet.SaveAs permet au fichier d'être enregistré avec le même nom. Comme nous avons ajouté l'extension en .pdf à la fin du fichier, elle est exportée en fichier PDF. Vous pouvez voir l'image ci-dessus pour votre référence.

Choses dont il faut se rappeler

  • L'emplacement d'enregistrement par défaut du fichier utilisé sous VBA SaveAs sera Ce PC> Documents. Cependant, vous pouvez spécifier le répertoire manuellement au moment de la définition du nom de fichier.
  • Par défaut, le fichier enregistré à l'aide de VBA SaveAs sera enregistré sous le même format que celui du fichier d'origine. Cependant, elle peut également être définie selon les besoins des utilisateurs au moment où vous définissez la variable.

Articles recommandés

Ceci est un guide de VBA Save As. Nous expliquons ici comment enregistrer le fichier à l'aide de la fonction Enregistrer sous Excel VBA avec un exemple et un modèle Excel téléchargeable. Voici quelques articles Excel utiles liés à VBA -

  1. VBA Exit Sub
  2. Créer une feuille de calcul dans Excel
  3. Objet VBA
  4. Enregistrement automatique Excel

Catégorie: