1 | Déclarer un classeur
On déclare une variable de type Workbook (classeur) pour ensuite manipuler le classeur avec la variable.
Par exemple, on déclare la variable classeurVente ainsi :
Dim classeurVente As Workbook
2 | Affecter un classeur
Le classeur est déjà ouvert
Set classeurVente = Workbooks("Ventes.xlsx")
OU
Set classeurVente = ActiveWorkbook
OU
Set classeurVente = ThisWorkbook
(le classeur contenant la macro, même s’il n’est pas actif)
OU
Set classeurVente = Workbooks(1)
Le classeur doit être ouvert
Set classeurVente = Workbooks.Open("C:\Ventes.xlsx")
Le classeur doit être créé
Set classeurVente = Workbooks.Add
3 | Manipuler un classeur
Activer un classeur
Enregistrer un classeur
Uniquement pour un classeur pour lequel on a déjà fait Enregistrer sous :
Enregistrer sous un classeur
classeurVente.SaveAs Filename:=C:\Chemin\Fichier.xlsx, Fileformat:=LeFormat
LeFormat peut être égal à :
xlOpenXMLWorkbookMacroEnabled : xlsm
xlOpenXMLWorkbook : xlsx
xlExcel : xls
Fermer
Fermer un classeur en enregistrant les éventuelles modifications :
classeurVente.Close SaveChanges:=True
Fonctions personnalisées
La Fonction WorkbookIsOpen
Vérifie si un classeur est ouvert dans la session active d’Excel (si le fichier est ouvert dans une autre session d’Excel, la fonction ne le détecte pas)
Function WorkbookIsOpen(sName As String) As Boolean
Dim x As Workbook
On Error Resume Next
Set x = Workbooks(sName)
If Err = 0 Then WorkbookIsOpen = True _
Else WorkbookIsOpen = False
End Function
Résumé