Documentation du module de classe clPlanning

Objectif : Présenter le module de classe pour Excel clPlanning, 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 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.

 
Sélectionnez

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.

 
Sélectionnez

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.

 
Sélectionnez

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.

 
Sélectionnez

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.

 
Sélectionnez

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.

 
Sélectionnez

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.

 
Sélectionnez

obplanning.BackColor=vbWhite

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

 
Sélectionnez

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.

 
Sélectionnez

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.

 
Sélectionnez

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.

 
Sélectionnez

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.

 
Sélectionnez

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.

 
Sélectionnez

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.

 
Sélectionnez

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.

 
Sélectionnez

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.

 
Sélectionnez

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.

 
Sélectionnez

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.

 
Sélectionnez

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.

 
Sélectionnez

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.

 
Sélectionnez

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 :

 
Sélectionnez

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 :

 
Sélectionnez

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.

 
Sélectionnez

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

 
Sélectionnez

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

 
Sélectionnez

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.

 
Sélectionnez

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

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

 
Sélectionnez

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 :

Image non disponible
Aperçu du planning 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.

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.