Documentation du module de classe clAgenda

Objectif : Présenter le module de classe pour Excel clAgenda, accompagné d'une application.

Article lu   fois.

L'auteur

Profil Pro

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Introduction

Nous présenterons ici le module de classe clAgenda permettant de gérer un agenda dans un classeur Excel. Ce type d'agenda a l'avantage d'être très souple et peut être paramétré en VBA sur une période de 8, 10, 12 heures, etc..., avec des tranches horaires de 10, 15, 30, 60 minutes, et peut comporter jusqu'à environ 50 lignes pour 7 colonnes. Ce module permet donc la mise en place d'une gestion d'agenda sous Excel.

Comme illustration, nous proposerons à la fin de l'article un exemple d'intégration de ce module dans un classeur Excel.

II. Le module de classe clAgenda

La classe clAgenda permet de formater une feuille Excel en agenda avec les en-têtes de lignes et de colonnes, mais aussi de fusionner sur ce planning des cellules définissant les rendez-vous.

Vous pouvez bien sûr ajouter de nouvelles propriétés ou de nouvelles méthodes, ou encore modifier les propriétés existantes, si vous souhaitez inclure de nouvelles fonctionnalités à vos plannings. Nous donnerons à ce sujet un exemple simple d'ajout d'une méthode à la fin de cette section.

II-A. Les propriétés de paramétrage de l'apparence du planning

Ces propriétés vont permettre de paramétrer la mise en forme du planning au moment de sa création.

II-A-1. Row

Vous pouvez utiliser la propriété Row pour définir ou connaître la ligne sélectionnée sur l'agenda. Entier long en lecture/écriture.

Exemple :

Le code suivant définit la ligne 3 comme ligne sélectionnée sur le planning.

 
Sélectionnez

obAgenda.Row=3

II-A-2. Col

Vous pouvez utiliser la propriété Col pour définir ou connaître la colonne sélectionnée sur le planning. Entier long en lecture/écriture.

Exemple :

Le code suivant définit la colonne 4 comme colonne sélectionnée sur l'agenda.

 
Sélectionnez

obAgenda.Col=4

II-A-3. Rows

Vous pouvez utiliser la propriété Rows pour définir ou connaître le nombre de lignes du planning. Entier long en lecture/écriture.

Exemple :

Le code suivant définit 30 lignes pour le planning.

 
Sélectionnez

obAgenda.Rows=30

II-A-4. Cols

Vous pouvez utiliser la propriété Cols pour définir ou connaître le nombre de colonnes de l'agenda. Entier long en lecture/écriture.

Exemple :

Le code suivant définit 7 colonnes pour le planning.

 
Sélectionnez

obAgenda.Cols=7

II-A-5. RowsHeight

Vous pouvez utiliser la propriété RowsHeight pour ajuster la hauteur des lignes du planning à des dimensions spécifiques. Entier en lecture/écriture.

Exemple :

Le code suivant ajuste la hauteur des lignes de l'agenda à 450 twips.

 
Sélectionnez

obAgenda.RowsHeight=450

II-A-6. ColsWidth

Vous pouvez utiliser la propriété ColsWidth pour ajuster la largeur des colonnes du planning à des dimensions spécifiques. Entier long en lecture/écriture.

Exemple :

Le code suivant ajuste la largeur des colonnes du planning à 125 twips.

 
Sélectionnez

obAgenda.ColsWidth=125

II-A-7. BackColor

Utiliser la propriété BackColor pour spécifier la couleur de fond du planning. Long en lecture/écriture.

Exemple :

Le code suivant colorie en blanc le fond de l'agenda.

 
Sélectionnez

obAgenda.BackColor=vbWhite

Le code suivant colorie en jaune clair le fond de l'agenda.

 
Sélectionnez

obAgenda.BackColor = RGB(255, 249, 139)

II-A-8. GridColor

Vous pouvez utiliser la propriété GridColor pour spécifier la couleur du quadrillage du planning. Long en lecture/écriture.

Exemple :

Le code suivant colorie en noir la grille du planning.

 
Sélectionnez

obAgenda.GridColor=vbBlack

II-A-9. FieldsRowsWidth

Utiliser la propriété FieldsRowsWidth pour ajuster la largeur des en-têtes de lignes à des dimensions spécifiques. Entier long en lecture/écriture.

Exemple :

Le code suivant ajuste la largeur des en-têtes de lignes à gauche du planning à 100.

 
Sélectionnez

obAgenda.FieldsRowsWidth=100

II-A-10. FieldsRowsColor

Vous pouvez utiliser la propriété FieldsRowsColor pour définir la couleur de fond pour les en-têtes de lignes situés à gauche du planning. Entier long en lecture/écriture.

Exemple :

Le code suivant colorie en gris la colonne à gauche de l'agenda.

 
Sélectionnez

obAgenda.FieldsRowsColor=vbGrey

II-A-11. FieldsColsWidth

Utiliser la propriété FieldsColsWidth pour ajuster la largeur des en-têtes de colonnes à des dimensions spécifiques. Entier long en lecture/écriture.

Exemple :

Le code suivant ajuste la largeur des en-têtes de colonnes en haut du planning à 100.

 
Sélectionnez

obAgenda.FieldsColsWidth=100

II-A-12. FieldsColsColor

Vous pouvez utiliser la propriété FieldsColsColor pour définir la couleur de fond pour les en-têtes de colonnes situés en haut du planning. Entier long en lecture/écriture.

Exemple :

Le code suivant colorie en gris la ligne en haut (en-têtes de colonnes) de l'agenda.

 
Sélectionnez

obAgenda.FieldsColsColor=vbGrey

II-B. Les propriétés de paramétrage temporel de l'agenda

Ces propriétés vont permettre de définir la période et la tranche horaire sur le planning.

II-B-1. StartDate

Vous pouvez utiliser la propriété StartDate pour définir ou connaître la date du 1er jour sur l'agenda. Date en lecture/écriture.

Exemple :

Le code suivant définit la date de début au 17 octobre 2016 sur le planning.

 
Sélectionnez

obAgenda.StartDate=#10/17/2016#

II-B-2. StartTime

Vous pouvez utiliser la propriété StartTime pour définir ou connaître l'heure du début de la journée sur l'agenda. Date en lecture/écriture.

Exemple :

Le code suivant définit l'heure de début de la journée à 8 heures.

 
Sélectionnez

obAgenda.StartTime=#08:00 AM#

II-B-3. EndTime

Vous pouvez utiliser la propriété EndTime pour définir ou connaître l'heure de fin de la journée sur l'agenda. Date en lecture/écriture.

Exemple :

Le code suivant définit l'heure de fin de la journée à 20 heures.

 
Sélectionnez

obAgenda.EndTime=#08:00 PM#

II-B-4. TimeLine

Vous pouvez utiliser la propriété TimeLine pour définir ou connaître la durée en minutes de la tranche horaire sur l'agenda. Entier long en lecture/écriture.

Exemple :

Le code suivant définit la durée de la tranche horaire à 30 minutes.

 
Sélectionnez

obAgenda.TimeLine=30

II-B-5. CurrentDate

Vous pouvez utiliser la propriété CurrentDate pour définir ou connaître la date choisie sur l'agenda. Date en lecture/écriture.

Exemple :

Le code suivant définit la date courante au 17 octobre 2016 sur le planning.

 
Sélectionnez

obAgenda.CurrentDate=#10/17/2016#

II-B-6. CurrentTime

Vous pouvez utiliser la propriété CurrentTime pour définir ou connaître l'heure cliquée sur l'agenda. Date en lecture/écriture.

Exemple :

Le code suivant définit l'heure courante à 15 heures.

 
Sélectionnez

obAgenda.CurrentTime=#03:00 PM#

II-C. Les propriétés pour relier l'agenda à une feuille Excel

Elles permettent de définir la feuille sur laquelle on va créer et paramétrer l'agenda.

II-C-1. Sheet

Utiliser la propriété Sheet pour spécifier la feuille sur laquelle on va créer le planning.

Exemple :

Le code suivant spécifie la feuille Agenda.

 
Sélectionnez

set obAgenda.sheet = Agenda

II-D. Les méthodes de création et d'initialisation de l'agenda

II-D-1. Create

Cette méthode créée l'agenda d'origine (grille vide) avec les en-têtes de lignes et de colonnes.

Exécution du code :

 
Sélectionnez

obAgenda.Create

II-D-2. Clear

Cette méthode efface les rdv de l'agenda pour revenir à la grille vide avec les en-têtes de lignes et de colonnes.

Exécution du code :

 
Sélectionnez

obAgenda.Clear

II-E. Les méthodes d'affichage du texte et des rendez-vous sur l'agenda

II-E-1. ShowRdv

Cette méthode permet d'afficher un rendez-vous correspondant à sa date (DateRdv) et à son heure de début (StartTimeRdv) et de fin (EndTimeRdv).

Paramètre Type Explication
DateRdv Date/Heure Date du rendez-vous ou de l'événement
StartTimeRdv Date/Heure Heure de début du rendez-vous ou de l'événement
EndTimeRdv Date/Heure Heure de fin du rendez-vous ou de l'événement
Text String Texte à écrire. Peut contenir des retours à la ligne (vbCrLf).
BackColor Long Couleur de fond.
BorderColor Long Couleur de la bordure.
BorderWidth Long Epaisseur de la bordure.

Exemple :

Le code suivant affiche le rendez-vous de "Dupont" positionné entre 9 heures et 10 heures 30.

 
Sélectionnez

obAgenda.ShowRdv obAgenda.StartDate + 2, #9:00:00 AM#, #10:30:00 AM#, "DUPONT",  vbGreen, vbBlack, 1

II-E-2. ShowRectRdv

Cette méthode permet d'afficher un rendez-vous dans un rectangle délimité par les coordonnées de début (Row1,Col1), correspondant à la région en haut à gauche, et les coordonnées de fin (Row2,Col2), correspondant à la région en bas à droite.

Paramètre Type Explication
Row1,Col1,Row2,Col2 Long Coordonnées du rectangle
Text String Texte à écrire. Peut contenir des retours à la ligne (vbCrLf).
BackColor Long Couleur de fond.
BorderColor Long Couleur de la bordure.
BorderWidth Long Epaisseur de la bordure.

Exemple :

Le code suivant écrit le texte "Dupont" dans un rectangle vert de coordonnées (3, 3, 5, 3).

 
Sélectionnez

obAgenda.ShowRectRdv 1, 3, 3, 5, 3, 1, 1, "DUPONT", 9, 2, 1, True, vbGreen, vbBlack, 1
Image non disponible
Aperçu du rectangle du rendez-vous sur l'agenda

II-E-3. WriteFieldRow

Cette méthode permet d'écrire du texte dans l'en-tête de la ligne d'indice Row.

Paramètre Type Explication
Row Integer Indice de l'en-tête de colonne
Text String Texte à écrire. Peut contenir des retours à la ligne (vbCrLf).
TextSize Long Taille du texte en pixels.
AlignHoriz Long Alignement horizontal (1 : Gauche, 2 : Centre, 3 : Droite).
AlignVert Long Alignement vertical (1 : Haut, 2 : Centre, 3 : Bas).
FontBold Boolean Caractères en gras (oui, non).

Exemple :

Le code suivant écrit le texte "08:00" dans l'en-tête de la 1ère ligne.

 
Sélectionnez

obAgenda.WriteFieldRow 1, "08:00", 9, 2, 1, True

II-E-4. WriteFieldCol

Cette méthode permet d'écrire du texte dans l'en-tête de la colonne d'indice Col.

Paramètre Type Explication
Col Integer Indice de l'en-tête de colonne
Text String Texte à écrire. Peut contenir des retours à la ligne (vbCrLf).
TextSize Long Taille du texte en pixels.
AlignHoriz Long Alignement horizontal (1 : Gauche, 2 : Centre, 3 : Droite).
AlignVert Long Alignement vertical (1 : Haut, 2 : Centre, 3 : Bas).
FontBold Boolean Caractères en gras (oui, non).

Exemple :

Le code suivant écrit le texte "Lundi" dans l'en-tête de la 1ère colonne.

 
Sélectionnez

obAgenda.WriteFieldCol 1, "Lundi", 9, 2, 1, True

II-F. Comment ajouter une méthode à la classe

Pour ceux qui souhaitent enrichir la classe de nouvelles propriétés ou de nouvelles méthodes pour ajouter des fonctionnalités au planning, je vous propose un exemple simple : ajouter une méthode pour colorier la case située à l'intersection d'une ligne et d'une colonne.

Pour ce faire, il nous faut ajouter la procédure ColorSquare qui devient automatiquement une méthode pour la classe. Le code devrait donc ressembler à celà :

 
Sélectionnez

'----------------------------------------------------------------------------------------
' Colorie la case d'indices (Row, Col) sur le planning
'----------------------------------------------------------------------------------------
Public Sub ColorSquare(Row As Integer, Col As Integer, BackColor As Long)

With sheet.Cells(Row, Col)
   .BackColor = BackColor
End With

End Sub

Ajouter le code à la suite des propriétés et méthodes, dans le module de classe clAgenda.

Exemple d'utilisation :

Le code suivant colorie en vert la cellule située à l'intersection de la ligne 3 et de la colonne 4 du planning.

 
Sélectionnez

obAgenda.ColorSquare 3, 4, vbGreen

III. Exemple d'intégration du module de classe

III-A. Agenda pour la gestion des rendez-vous

Intégration d'un agenda dans un classeur pour gérer des rendez-vous :

Image non disponible
Aperçu de l'agenda hebdomadaire

Le fichier ExcelAgenda Rdv pour la gestion des rendez-vous avec prise en charge des macros VBA.

IV. Le module de classe à télécharger

La classeclAgenda clAgenda au format cls.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Copyright © 2016 Denis Hulo. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Droits de diffusion permanents accordés à Developpez LLC.