L'informatique à votre portée
L'informatique prêt-à-porter

Faites appel à moi pour vos formations
sur les dpts 81, 31, 82, 11 et 67 (Strasbourg)
Confiez moi vos développements Office

FacebookTwitterGoogle BookmarksLinkedin

Les évènements

Imprimer E-mail
4 mars 2014

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édureSe 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

Quelques méthodes intéressantes

Imprimer E-mail
4 mars 2014
MéthodeDéfinitionExemple

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"

Quelques propriétés intéressantes

Imprimer E-mail
4 mars 2014

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 :

La collection

Imprimer E-mail
4 mars 2014

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.