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
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 :
Le fichier Excelplanning des tâches pour la gestion des tâches avec prise en charge des macros VBA.
IV. Le module de classe à télécharger▲
La classeclPlanning clPlanning au format cls.