CathyAstuce

VBA

GEMCCAP CONSEIL INFORMATIQUE BUREAUTIQUE
Formation - Conception Sites Internet
Applications Informatiques Personnalisées
Communauté partenaire Microsoft

LE CLASSEUR D'EXCEL

La collection  
Nouveau classeur  Ouvrir un classeur
Fermer un classeur 

  Quelques propriétés intéressantes
BuiltinDocumentProperties  Name, Path et Fullname 

  Quelques méthodes intéressantes   Les évènements

Remonter I. La collection

Elle représente l'ensemble des classeurs ouverts et s'appelle Workbooks.
Pour travailler avec un de ces classeurs, utilisez une des syntaxes suivantes :

  • Workbooks(n), où n est le numéro d'index dans l'ordre où les classeurs ont été ouverts.
  • Workbooks("nomclasseur.xls"), où nomclasseur est le nom du classeur.

2 mots clés désignent des classeurs spécifiques :

  • ActiveWorkbook représente le classeur actif, celui qui est sélectionné dans la fenêtre d'Excel.
  • ThisWorkbook représente le classeur dans lequel est écrit le code.
    Il peut être le même que ActiveWorkbook si la macro est contenu dans le classeur actif.

Remonter I.1. Nouveau classeur

Pour ouvrir un nouveau classeur vierge utilisez cette procédure :

Sub Nouveau_Classeur()
       Workbooks.Add
End Sub

Pour préciser le modèle du nouveau classeur :

Sub Nouveau_Classeur()
       Workbooks.Add "Duree Formation"
End Sub

Remonter I.2. Ouvrir un classeur

Workbooks.Open "chemin_nom_classeur.xls"

Vous pouvez également la mise à jour des liens, et les mots de passe en Lecture et en Ecriture :

Workbooks.Open "chemin_nom_classeur.xls",NoUpdate,,,"mot de passe lecture", "mot de passe écriture"

Où NoUpdate peut prendre les valeurs suivantes, si vous ne lui attribuez aucune valeur, la boîte de dialogue de mise à jour s'affiche :
0 ne met rien à jour.
1 met à jour les liens externes mais pas les liens distants.
2 met à jour les liens distants mais pas les liens externes.
3 met tout à jour.

Remonter I.2. Fermer un classeur

  • Tous les classeurs : Workbooks.Close
  • Un seul classeur : 
    • Workbooks("nomclasseur.xls).Close
    • Workbooks("nomclasseur.xls).Close Sauvegarde,
      Sauvegarde est True si vous voulez enregistrer les changements et False dans le cas contraire.

Remonter II. Quelques propriétés intéressantes

Remonter II.1. BuiltinDocumentProperties

Cette propriété renvoie la collection des propriétés de document (vous les atteignez avec Fichier/Propriétés). Dans l'explorateur, l'auteur, le titre, le sujet et le commentaire sont visibles dans une info-bulle.
Pour affecter une valeur à une de ces propriétés, procéder ainsi :
BuiltinDocumentProperties("propriété")="texte"
où propriété peut être, entre autres :
Title pour le titre Author pour le nom de l'auteur
Subject pour le sujet Comments pour le commentaire

L'exemple suivant attribue un auteur, une société et un commentaire au classeur :

 Sub Prop_Document()
      With ActiveWorkbook
          .BuiltinDocumentProperties("Author") = "Cathy Monier"
          .BuiltinDocumentProperties("Comments") = "essai de propriétés par procédure dans un classeur"
          .BuiltinDocumentProperties("Company") = "Cathy Astuce"
      End With
End Sub

L'exemple suivant vous permet de lister l'ensemble des propriétés, leur nom et leur contenu. La ligne On Error Resume Next permet de ne pas provoquer une erreur lorsque la propriété est vide.

Sub Lire_Prop_Document()
   Dim P As Variant
   Dim L As Byte

On Error Resume Next
   L = 1
   For Each P In ActiveWorkbook.BuiltinDocumentProperties
      Range("A" & L) = P.Name
      Range("B" & L) = P
      L = L + 1
   Next
End Sub

Remonter II.2. Name, Path et Fullname

  • ActiveWorkbook.Fullname renvoie le nom complet, chemin compris du classeur actif
  • ActiveWorkbook.Name renvoie uniquement son nom.
  • ActiveWorkbook.Path renvoie son chemin d'accès sans le séparateur final

En bref la fonction Chemin suivante renvoie toujours True si le classeur est enregistré :

Function Chemin() As Boolean
   Chemin = False
   With ActiveWorkbook
      If .FullName = .Path & "\" & .Name Then Chemin = True
   End With
End Function

Remonter III. Quelques méthodes intéressantes


Méthode Définition Exemple

Activate

Pour rendre le classeur actif Workbooks(1).Activate
Close Pour fermer le classeur Workbooks(1).Close
Save Sauvegarder le classeur

ActiveWorkbook.Save

SaveAs Sauvegarder le classeur sous un nouveau nom, c'est ce nouveau classeur qui est actif et le précédent n'est pas ouvert. ActiveWorkbook.SaveAs "C:\chemin\nom classeur.xls"
SaveCopyAs  Effectue une copie du classeur sans modifier le classeur qui reste actif. ActiveWorkbook.SaveCopyAs "C:\chemin\nom classeur.xls"

Remonter IV. Les évènements

Depuis la version 97, VBA gère les évènements suivants d'un classeur, vous pouvez ainsi effectuer une action lors de ces évènements :
Procédure Se produit
Sub Workbook_Activate() quand le classeur est activé
Sub Workbook_Deactivate() quand le classeur est désactivé
Sub Workbook_AddinInstall() quand le classeur est installé sous forme de macro complémentaire
Sub Workbook_AddinUninstall() quand le classeur, sous forme de macro complémentaire, est désinstallé 
Sub Workbook_BeforeClose(Cancel As Boolean) juste avant que le classeur se ferme. Pour arrêter la fermeture, attribuez la valeur True à Cancel.
Sub Workbook_BeforePrint(Cancel As Boolean) juste avant l'impression. Pour annuler l'impression  attribuez la valeur True à Cancel.
Sub Workbook_BeforeSave(ByVal SaveAsUi As Boolean, Cancel As Boolean) juste avant l'enregistrement. Pour l'arrêter,  attribuez la valeur True à Cancel. Pour afficher la la boîte de dialogue Enregistrer sous, SaveAsUi = True
Sub Workbook_NewSheet(ByVal Sh As Object) quand une nouvelle feuille est crée. Sh représente la feuille (de calcul ou graphique)
Sub Workbook_Open() quand le classeur est ouvert

AccueilDébut de la page