Voici quelques instructions pour gérer les classeurs en VBA. Un des intérêts des macros est bien de pouvoir agir sur tous les éléments et notamment de créer, de renommer ou de fermer un classeur. Si vous ne maîtrisez pas l’ensemble du VBA, je vous rappelle que vous pouvez utiliser l’enregistreur de macros, puis revenir sur les procédures en ne modifiant que quelques lignes.
A connaître avant de commencer : les deux façons d’appeler un classeur. Workbooks pour appeler un classeur quelconque et ActiveWorkbook quand il s’agit du classeur dans lequel on se trouve.
– Créer un classeur :
Pour créer un classeur en VBA, le code est simple : Workbooks.Add
Cette instruction ouvre un nouveau classeur vierge. Pratique pour copier ou intégrer des éléments sélectionnés directement dans un nouveau classeur pour, par exemple, le diffuser ou sauvegarder ces informations.
– Renommer et enregistrer un classeur :
Pour cela, vous pouvez utiliser la traduction de l’enregistrer sous, à savoir : Activeworkbook.SaveAs Filename :=
Ici, vous seriez positionné dans un nouveau classeur et vous souhaiteriez le renommer TOTO.XLS.
L’instruction serait alors :
Activeworkbook.SaveAs Filename := »TOTO.XLS »
Personnellement, j’aime bien laissé aux utilisateurs la possibilité de choisir eux-mêmes le nom du fichier. Pour cela, je lance l’instruction qui permet d’ouvrir la boîte de dialogue standard d’enregsitrement. Cela donne la commande suivante :
Application.GetSaveAsFilename
L’avantage de cette dernière est que vous pouvez choisir également l'emplacement de votre nouveau fichier. Si vous souhaitez utiliser la première méthode, ce qui est bien pratique pour être sûr que l’action est bien éxécutée (et oui, vous n’avez pas de bouton ANNULER), il vous faudra indiquer le chemin complet dans le nom de votre fichier (ex: C:\TOTO.XLS).
– Enregistrer une copie :
Si vous souhaitez juste enregistrer une copie de ce fichier, alors l’instruction devient :
ActiveWorkbook.SaveCopyAs « C:\TOTO-2.xls »
– Fermer un classeur :
Pour fermer un classeur, il vous faudra utiliser la commande Close. Si vous souhaitez fermer le classeur dans lequel vous vous trouvez alors, l’instruction sera :
ActiveWorkbook.close
En synthèse, nous pourrions écrire un code pour créer un classeur, l’enregistrer sous le nom TOTO.XLS dans C: et ensuite le fermer. Le code serait alors le suivant :
Sub Classeur()
Workbooks.Add
ActiveWorkbook.SaveAs Filename:= »C:\TOTO.XLS »
ActiveWorkbook.Close
End Sub
Voilà, quelques actions de base sur les classeurs. Je vous invite à essayer l’ensemble des fonctions par vous-même directement dans Visual Basic et de découvrir celles non évoquées ici. Vous aurez alors un aperçu de tout ce qu’il est possible de faire.
Bon code !
Bonjour. Je trouve votre code intéressant. Par contre je voulais le code complet pour copier un classeur avec la possibilité de le renommer par l’utilisateur et de choisir l'emplacement du classeur.