Documentation du module de classe clPlanning

Denis Hulo

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

- Titre : Documentation du module de classe clPlanning

- Auteur : Denis Hulo

- Parution : 7 octobre 2016

- Licence : 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.

Sommaire

- I. Introduction

- II. Le module de classe clPlanning

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

- II-A-1. Row

- II-A-2. Col

- II-A-3. Rows

- II-A-4. Cols

- II-A-5. RowsHeight

- II-A-6. ColsWidth

- II-A-7. BackColor

- II-A-8. GridColor

- II-A-9. FieldsCols

- II-A-10. FieldsRowsWidth

- II-A-11. FieldsRowsColor

- II-A-12. FieldsColsWidth

- II-A-13. FieldsColsColor

- II-B. Les propriétés de paramétrage temporel du planning

- II-B-1. StartDate

- II-B-2. DaysPeriod

- II-B-3. WeeksPeriod

- II-B-4. MonthsPeriod

- II-B-5. CurrentDate

- II-C. Les propriétés pour relier le planning à une feuille Excel

- II-C-1. Sheet

- II-D. Les méthodes de création et d'initialisation du planning

- II-D-1. Create

- II-D-2. Clear

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

- II-E-1. ShowTask

- II-E-2. ShowRect

- II-E-3. WriteFieldRow

- II-E-4. WriteFieldCol

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

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

- III-A. Planning pour la gestion des tâches

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

I - Introduction

Nous présenterons ici le module de classe clPlanning permettant de gérer un planning dans un classeur Excel. Ce type de planning a l'avantage d'être très souple et peut être paramétré en VBA sur 1 semaine, quinze jours, 1 mois etc..., Ce module permet donc la mise en place d'une gestion de planning 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 clPlanning

La classe clPlanning permet de formater une feuille Excel en planning avec les en-têtes de lignes et de colonnes, mais aussi de fusionner sur ce planning des cellules définissant les différentes tâches.

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 le planning. Entier long en lecture/écriture.

Exemple :

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

obplanning.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 le planning.

obplanning.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.

obplanning.Rows=30

II-A-4 - Cols

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

Exemple :

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

obplanning.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 le planning à 450 twips.

obplanning.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.

obplanning.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 le planning.

obplanning.BackColor=vbWhite

Le code suivant colorie en jaune clair le fond de le planning.

obplanning.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.

obplanning.GridColor=vbBlack

II-A-9 - FieldsCols

Utiliser la propriété FieldsCols pour definir le nombre de colonnes pour les en-têtes de lignes situés à gauche du planning. Entier long en lecture/ecriture.

Exemple :

Le code suivant définit 2 colonnes pour les en-têtes de lignes.

obplanning.FieldsCols=2

II-A-10 - 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.

obplanning.FieldsRowsWidth=100

II-A-11 - 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 le planning.

obplanning.FieldsRowsColor=vbGrey

II-A-12 - 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.

obplanning.FieldsColsWidth=100

II-A-13 - 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 le planning.

obplanning.FieldsColsColor=vbGrey

II-B - Les propriétés de paramétrage temporel du planning

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 le planning. Date en lecture/écriture.

Exemple :

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

obplanning.StartDate=#10/17/2016#

II-B-2 - DaysPeriod

Vous pouvez utiliser la propriété DaysPeriod pour définir ou connaître la période de navigation en jours sur le planning. Entier long en lecture/écriture.

Exemple :

Le code suivant définit la période de navigation à 31 jours.

obplanning.DaysPeriod=31

II-B-3 - WeeksPeriod

Vous pouvez utiliser la propriété WeeksPeriod pour définir ou connaître la période de navigation en semaines sur le planning. Entier long en lecture/écriture.

Exemple :

Le code suivant définit la période de navigation à 2 semaines.

obplanning.WeeksPeriod=2

II-B-4 - MonthsPeriod

Vous pouvez utiliser la propriété MonthsPeriod pour définir ou connaître la période de navigation en mois sur le planning. Entier long en lecture/écriture.

Exemple :

Le code suivant définit la période de navigation à 1 mois.

obplanning.MonthsPeriod=1

II-B-5 - CurrentDate

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

Exemple :

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

obplanning.CurrentDate=#10/17/2016#

II-C - Les propriétés pour relier le planning à une feuille Excel

Elles permettent de définir la feuille sur laquelle on va créer et paramétrer le planning.

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 planning.

set obplanning.sheet = planning

II-D - Les méthodes de création et d'initialisation du planning

II-D-1 - Create

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

Exécution du code :

obplanning.Create

II-D-2 - Clear

Cette méthode efface les tâches du planning pour revenir à la grille vide avec les en-têtes de lignes et de colonnes.

Exécution du code :

obplanning.Clear

II-E - Les méthodes d'affichage du texte et des rendez-vous sur le planning

II-E-1 - ShowTask

Cette méthode permet d'afficher une tâche sur la ligne d'indice Row et entre la date de début (StartDateTask), et la date de fin (EndDateTask).

Paramètre

Type

Explication

Row

Long

Indice de ligne pour la tâche

StartDateTask

Date/Heure

Date de début de la tâche

EndDateTask

Date/Heure

Date de fin de la tâche

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.

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

II-E-2 - ShowRect

Cette méthode permet d'afficher une tâche 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).

obplanning.ShowRectRdv 1, 3, 3, 5, 3, 1, 1, "DUPONT", 9, 2, 1, True, vbGreen, vbBlack, 1

Aperçu du rectangle du rendez-vous sur le planning

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.

obplanning.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.

obplanning.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à :

'----------------------------------------------------------------------------------------
' 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 clPlanning.

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.

obplanning.ColorSquare 3, 4, vbGreen

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

III-A - Planning pour la gestion des tâches

Intégration d'un planning dans un classeur pour gérer des tâches :

Aperçu du planning des tâches

Le fichier Excel pour la gestion des tâches avec prise en charge des macros VBA.

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

La classe clPlanning au format cls.