Créer un nouveau classeur dans Excel vba
La méthode Add
de la collection Workbooks
est utilisée pour créer un nouveau classeur. Le nouveau classeur devient le classeur actif.
La création d'un nouveau Workbook
s'effectue en ajoutant un nouvel élément à la collection Workbooks.
Dans sa forme la plus simple, il s'appelle ainsi :
Workbooks.Add
L'objet de la collection Workbooks
est ici obtenu à partir de la procédure Application.Workbooks
.
Application.Workbooks
est globale Application
peut être omis de la déclaration.Dans la plupart des cas, vous ferez suivre la création du nouvel objet Workbook par d'autres actions sur celui-ci.
Pour ce faire, vous utilisez l'appel de procédure pour affecter l'objet créé à une variable d'objet, ici wb
.
Dim wb As Workbook
Set wb = Workbooks.Add
L'argument facultatif Template
L'argument facultatif Template détermine la manière dont le nouveau classeur est créé.
Si cet argument est omis, Microsoft Excel crée un nouveau classeur avec un certain nombre de feuilles vierges,
le nombre de feuilles est déterminé par la propriété SheetsInNewWorkbook
.
Application.SheetsInNewWorkbook = 2 'Setting the SheetsInNewWorkbook value
Dim lngSheetsInNewWorkbook As Long
lngSheetsInNewWorkbook = Application.SheetsInNewWorkbook 'Obtaining the current value
Utilisation d'un fichier modèle pour créer le nouveau classeur à partir de
Si cet argument est une chaîne de caractères spécifiant le nom d'un fichier Microsoft Excel existant, le nouveau classeur est créé avec le fichier spécifié comme modèle. Si vous trouvez le modèle dans le dossier de modèles désigné (ici : \Documents\NModèles Office personnalisés), vous pouvez ignorer le chemin d'accès :
Dim wb As Workbook
Set wb = Workbooks.Add(Template:="MyTemplate.xltx")
Si vous avez l'intention de stocker le modèle dans un autre dossier, vous devez spécifier le chemin d'accès complet :
Dim wb As Workbook
Set wb = Workbooks.Add(Template:="C:\Code VBA\Demo\MyTemplate.xltx")
Classeur avec une seule feuille du type sélectionné
En utilisant l'une des constantes XlWBATemplate comme argument Template, vous créez un nouveau classeur avec une seule feuille du type spécifié : xlWBATChart pour obtenir une feuille de graphique ou xlWBATWorksheet pour une feuille de calcul.
Dim wb As Workbook
Set wb = Workbooks.Add(Template:=xlWBATWorksheet)
Classeur avec plusieurs feuilles du type sélectionné
Compte tenu des risques liés à l'utilisation de la propriété SheetsInNewWorkbook
(décrite ci-dessus),
je vous propose de commencer par une seule feuille et d'y ajouter autant de feuilles que vous le souhaitez, en dessous de trois au total :
Dim wb As Workbook
Set wb = Workbooks.Add(Template:=xlWBATWorksheet) '1
wb.Sheets.Add(Type:=xlWorksheet, Count:=2) 'The number of sheets to be added.
Créez un nouveau classeur et nommez-le
Le nom d'un classeur sauvegardé est son nom de fichier, y compris l'extension du fichier.
Un classeur qui n'a pas encore été sauvegardé obtient un nom temporaire tel que Book1 - qui n'est pas très distinctif.
Pour agir sur un classeur, il faut l'identifier dans la collection Workbooks
.
Pour donner le classeur, il faut le sauvegarder :
Dim wb As Workbook
Set wb = Workbooks.Add
wb.SaveAs
Le SaveAs ci-dessus n'a pas de paramètres spécifiés et n'utilise que les valeurs par défaut. Le fichier sera nommé d'après son nom temporaire Book1.xlsx et enregistré dans le dossier actuel.