Le classeur est un des principaux objets d’Excel. Il est assez simple à manipuler, pour peu qu’on utilise l’objet Workbook.
Désigner le classeur à manipuler
Déclarer un classeur
Nous allons manipuler un classeur contenant les ventes. Vous devez créer cette variable pour que le code de cette article fonctionne.
Dim wbVente As Workbook
Ouvrir un classeur
Nous déclarons une variable sFichier de type Texte à laquelle nous affectons un chemin complet (dossier + fichier) vers un fichier Excel. Pour l’exemple, nous souhaitons ouvrir le fichier en lecture seule (argument nommé ReadOnly)
Dim sFichier As String sFichier = "C:\Mes documents\Ventes.xlsx" Set wbVente = Workbooks.Open(Filename:=sFichier, ReadOnly:=True)
Si le fichier n’existe pas, une erreur se produit. Pour vérifier que le fichier existe avant d’en demander l’ouverture, ajoutez le code mis en surbrillance :
Dim sFichier As String If Dir(sFichier) = "" Then MsgBox "Le fichier '" & sFichier & "' n'existe pas.", vbExclamation Exit Sub End If sFichier = "C:\Mes documents\Ventes.xlsx" Set wbVente = Workbooks.Open(Filename:=sFichier, ReadOnly:=True)
Créer un classeur
Nous créons un classeur (Fichier > Nouveau) et le plaçons dans la variable wbVente
Set wbVente = Workbooks.Add
Vous pouvez créer un classeur en prenant un autre classeur comme modèle :
Set wbVente = Workbooks.Add(sFichier)
La variable wbVente contient alors un nouveau classeur dont le contenu est copié depuis le fichier sFichier.
Le classeur est déjà ouvert
Un classeur est ouvert dès le démarrage de la macro :
Dim sNomClasseur As String sNomClasseur="Ventes.xlsx" Set wbVente = Workbooks(sNomClasseur)
Notez que le classeur doit être désigné par son nom simple (Ventes.xlsx), sans le chemin (C:\Mes documents)
Si le classeur à manipuler est le classeur actif, voici la syntaxe :
Set wbVente = ActiveWorkbook
Si le classeur à manipuler est le premier à avoir été ouvert, utilisez cette syntaxe :
Set wbVente = Workbooks(1)
Principales actions sur un classeur
Enregistrer sous un classeur
wbVente.SaveAs Filename:="Ventes2013.xlsx"
Enregistrer un classeur
wbVente.Save
Notez qu’à la différence du fonctionnement d’Excel, la méthode Save sur un classeur sans nom ni emplacement ne provoque pas l’ouverture de la boîte de dialogue Enrgistrer sous : le classeur est enregistré avec son nom actuel (souvent Classeur1) et à son emplacement actuel (habituellement Mes documents).
Activer un classeur
wbVente.Activate
Notez qu’il n’est pas nécessaire d’activer un classeur pour le manipuler par sa variable.
Fermer un classeur
wbVente.Close SaveChanges:=True