Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :
Ajouter des Rendez-vous dans un planning Excel
Dans cette
formation VBA Excel , nous proposons de bâtir une application permettant à l'utilisateur de gérer ses rendez-vous et tâches, à travers un planning. Plus spécifiquement ici, il s'agit d'un
calendrier annuel dynamique . Les Week-End et jours fériés sont automatiquement repérés, quelle que soit l'année choisie.
Dans cette
application de gestion à construire, l'utilisateur choisit le mois et le jour à l'aide de deux listes déroulantes. Il décrit ensuite le
Rendez-vous dans la cellule fusionnée prévue à cet effet. Puis, il clique sur le
petit bouton + pour procéder à l'insertion. Le jour correspondant est dynamiquement mis en valeur dans le
calendrier . De plus, il est accompagné d'un commentaire, reprenant la description proposée.
L'utilisateur peut cliquer sur le
petit bouton - pour afficher l'
interface de gestion des Rendez-vous . Une liste déroulante permet de désigner la date d'une tâche à récupérer. Son contenu s'inscrit alors dans une zone de saisie pour autoriser des modifications. Il peut les confirmer en cliquant sur le
bouton modifier . Il peut aussi supprimer le Rendez-vous du calendrier grâce à l'autre bouton.
La capture ci-dessus, illustre une partie de l'application finalisée. Nous y retrouvons en effet les deux petits boutons de gestion, en haut à droite de la feuille.
Sources et présentation du concept
Nous décomposerons cette formation en trois étapes, notamment pour simplifier l'énoncé du code mais pas seulement. Une partie, celle de la mise en valeur des rendez-vous dans le
calendrier , ne nécessite pas l'intervention du
VBA . Il s'agira du dernier de ces modules d'apprentissage.
Dans ce premier volet, nous allons axer les travaux sur l'intégration de nouvelles tâches dans le planning. Dans le suivant, nous développerons l'interface de gestion des rendez-vous, grâce à un
UserForm .
Dans un premier temps, il s'agit de récupérer le classeur source, déjà fort évolué, puisqu'il offre le
calendrier dynamique notamment.
Ce classeur est composé de quatre feuilles. La
feuille Calendrier est active par défaut. Au choix de l'année en cellule C3, le
calendrier annuel s'auto-construit. Il repère et identifie les jours de
Week-End ainsi que les
jours fériés . Ces derniers sont recensés dans une feuille annexe, la
feuille Jours_feries . En haut de la feuille, en colonne N, vous notez la présence des deux
boutons pour la
gestion des Rendez-vous . Bien entendu, ils sont inopérants à ce stade.
La
feuille source héberge les données ayant permis de construire les listes déroulantes pour le choix du mois et du jour du rendez-vous à créer. Ces listes sont respectivement placées en
cellules I3 et J3 de la
feuille Calendrier .
Cliquer sur l'onglet Liste_rv en bas de la fenêtre Excel pour activer sa feuille,
Cette feuille retient toute notre attention. Elle doit accueillir et énumérer chaque tâche ajoutée au clic sur le
bouton + . Cette méthodologie permettra d'effectuer un tri croissant des notifications sur la date. Cette organisation permettra ultérieurement de les proposer dans un ordre logique, depuis l'
interface de gestion des rendez-vous . En outre, elle simplifiera l'analyse des données par le
code VBA pour les repérer dans le
calendrier .
Insérer un nouveau Rendez-vous en VBA
Cette insertion doit dans un premier temps s'opérer dans le tableau de la
feuille Liste_rv . Les tâches doivent être énumérées les unes en dessous des autres. Nous devons donc commencer par bâtir une
fonction capable de détecter l'indice de ligne disponible. En d'autres termes, il s'agit de la première ligne vide détectée à la suite de l'énumération.
Basculer dans l'éditeur de code VBA Excel avec le raccourci clavier ALT + F11 par exemple,
Dans l'explorateur de projet , déployer l'affichage du dossier Modules ,
Puis, double cliquer sur le module code_rv existant,
Nous affichons ainsi sa feuille de code au centre de l'écran. Comme vous le constatez, ce classeur, en plus du
calendrier annuel dynamique , offre certaines procédures de codes préconstruites. La
procédure Trier devra être appelée pour réorganiser les tâches par dates croissantes, sur la
feuille Liste_rv . Nous ne revenons pas sur ces notions que nous avions apprises au travers de la
formation Visual Basic Excel pour organiser les données .
Pour cette organisation, les dates de rendez-vous devront être reconstruites par le
code VBA . C'est la raison de la présence de la
fonction num_mois . Grâce à l'
instruction de branchement Select Case , elle retourne le numéro correspondant à un mois passé en toutes lettres. Janvier vaut 1 par exemple.
Nous devons créer la
fonction réalisant l'analyse du tableau des tâches, pour transmettre l'indice de la première ligne disponible détectée.
Au-dessus de la fonction Trier , créer la fonction trouver , comme suit :
Function trouver() As Integer
End Function
Comme vous le savez, en
VBA il n'y a pas d'instruction
return . Une
fonction retourne une valeur qu'elle stocke dans son propre nom (trouver). Cette valeur est un indice de ligne, soit un
nombre entier . C'est pourquoi nous typons la
fonction en conséquence, comme un
Integer donc.
Nous avons besoin de
variables permettant de parcourir les cellules du tableau à analyser.
Dans les bornes de la fonction, ajouter les déclarations et affectations suivantes :
Dim ligne As Integer: Dim colonne As Integer
ligne = 3: colonne = 2
Une cellule est référencée par le croisement d'une ligne et d'une colonne. Nous déclarons donc ces deux variables. Bien sûr, il s'agit de nombres entiers. Sur la
feuille Liste_rv , le tableau pour l'énumération des rendez-vous débute à partir de la ligne 3 et de la colonne B, soit la colonne 2. Nous initialisons donc les deux
variables sur ces valeurs.
Pour trouver la première ligne vide dans l'énumération, l'astuce consiste à réaliser une
boucle qui met fin au traitement lorsque son critère n'est plus vérifié. Ce critère consiste à savoir si la cellule de la ligne en cours propose un contenu. Dans ce cas, l'analyse doit passer sur la ligne suivante. Dans le cas contraire, le traitement doit être stoppé pour retourner l'indice prélevé. Un
traitement récursif vérifiant une condition se réalise grâce à une boucle While .
Après les affectations, ajouter les instructions suivantes :
While (Sheets('liste_rv').Cells(ligne, colonne).Value <> '')
ligne = ligne + 1
Wend
trouver = ligne
L'
objet VBA Sheets permet de désigner la
feuille Liste_rv sur laquelle l'analyse doit être réalisée. L'
objet dérivé Cells permet de pointer sur une cellule de cette feuille. Nous désignons une cellule de la ligne en cours, partant de l'indice 3 pour la colonne 2, soit B3. Sa
propriété Value permet d'accéder à son contenu. Si celui-ci n'est pas vide (<>''), l'analyse doit se poursuivre sur la ligne suivante (ligne = ligne + 1). Le traitement tourne donc en boucle tant que la première cellule vide n'est pas trouvée. En revanche, si elle est détectée, la boucle met fin à son traitement. De fait la
variable ligne n'est plus incrémentée et porte la valeur du premier indice à exploiter. C'est pourquoi nous affectons la fonction de cette donnée à retourner (trouver = ligne).
Pour que cette information puisse être exploitée, la
fonction trouver doit être questionnée. Nous choisissons donc de créer la
procédure ajouter . Cette dernière doit être déclenchée au clic sur le bouton + de la
feuille Calendrier . Elle doit inscrire les informations du nouveau rendez-vous sur la ligne dont l'indice lui a été retourné.
Au-dessus de la fonction trouver , créer la procédure ajouter , comme suit :
Sub ajouter()
Dim ligne As Integer
Dim lannee As Integer: Dim le_mois As Byte: Dim le_jour As Byte
ligne = trouver
End Sub
Une procédure (Sub) ne retourne pas de valeur. Elle n'a donc pas besoin d'être typée. La
variable ligne sert à réceptionner l'indice retourné par la fonction (ligne = trouver).
VBA propose une fonction similaire à la
fonction Excel Date . Elle se nomme
DateSerial . A l'instar de son homologue, elle permet de reconstruire une date en fonction du numéro de l'année, du numéro du mois et du numéro du jour. C'est pourquoi nous déclarons les trois variables respectives nécessaires.
Mais avant cela, nous pouvons procéder à l'inscription des informations connues, sur la nouvelle ligne de la
feuille Liste_rv . Le mois et le jour du nouveau Rendez-vous à créer sont respectivement inscrits en
cellules I3 et J3 de la
feuille Calendrier . Le contenu quant à lui est situé en
cellule K2 de cette même feuille. Il s'agit donc de réaliser la correspondance des valeurs grâce à l'
objet Cells .
A la suite du code de la procédure, ajouter les trois instructions suivantes :
Sheets('liste_rv').Cells(ligne,2).Value = Sheets('Calendrier').Range('I3').Value
Sheets('liste_rv').Cells(ligne, 3).Value = Sheets('Calendrier').Range('J3').Value
Sheets('liste_rv').Cells(ligne, 5).Value = Sheets('Calendrier').Range('K2').Value
Pour la nouvelle ligne de la
feuille Liste_rv , ces informations doivent respectivement être positionnées en colonnes B, C et E. Il s'agit des indices 2, 3 et 5 mentionnés dans notre code. Pour la correspondance avec les cellules de la
feuille Calendrier , nous avons préféré employer l'
objet Range à la place de l'
objet Cells . Les cellules étant connues, l'
objet Range permet des les désigner par leurs références.
Il ne nous reste plus qu'à inscrire la date en colonne D (indice 4). Mais avant cela, nous devons la reconstruire. Les numéros pour l'année et pour le jour sont connus. Pour l'année, il suffit de pointer sur la
cellule C3 de la
feuille Calendrier . Pour le jour, il suffit de récupérer la valeur inscrite précédemment en
colonne C de la
feuille Liste_rv (Sheets('liste_rv').Cells(ligne,3).Value). Le mois est certes connu, mais sous forme de texte. Nous venons de l'inscrire en colonne B pour la ligne en cours (Sheets('liste_rv').Cells(ligne,2).Value). Nous devons le passer à la
fonction num_mois pour récupérer son numéro correspondant. Ainsi, nous pourrons exploiter la
fonction VBA DateSerial pour reconstruire la date complète. C'est elle qui permettra le tri chronologique.
A la suite du code de la procédure, ajouter les traitements suivants :
lannee =Sheets('Calendrier').Cells(3, 3).Value
le_jour = Sheets('liste_rv').Cells(ligne, 3).Value
le_mois = num_mois(Sheets('liste_rv').Cells(ligne, 2).Value)
Sheets('liste_rv').Cells(ligne, 4).Value = DateSerial(lannee, le_mois, le_jour)
Chaque numéro est stocké dans sa variable respective. Pour le mois, vous constatez le traitement intermédiaire par l'appel de la
fonction num_mois , à laquelle nous passons l'information sur le mois en texte à traiter. Puis, en
colonne D de la
feuille Liste_rv , toujours pour l'indice variable de la ligne en cours, nous écrivons la date recomposée (DateSerial(lannee, le_mois, le_jour)).
Nous n'avons pas tout à fait terminé. A ce stade en effet, nous nous contentons d'inscrire chaque nouvelle tâche les unes en dessous des autres, dans le tableau de la
feuille Liste_rv . L'objectif final de ce premier volet consiste à les repérer dans le
calendrier annuel . Et chacune doit être associée à son commentaire. Nous pouvons néanmoins réaliser les premiers essais.
Enregistrer les modifications (CTRL + S),
Revenir sur la feuille Calendrier ,
Cliquer avec le bouton droit de la souris sur le bouton + ,
Dans le menu contextuel, choisir Affecter une macro ,
Dans la boîte de dialogue qui suit, sélectionner la procédure ajouter et cliquer sur Ok,
Le lien entre le bouton et la procédure est désormais établi. Au prochain clic sur le bouton, le code de la
procédure ajouter s'exécutera.
Choisir un mois et un jour à l'aide des listes déroulantes respectives en I3 et J3,
Décrire la tâche en K2, par exemple: 14h : Réunion de chantier ,
En apparence rien ne se produit. Tout cela est fort logique en effet. Comme nous l'avons mentionné précédemment, les travaux portent uniquement sur la
feuille Liste_rv à ce stade.
Cliquer sur l'onglet Liste_rv en bas de la fenêtre Excel pour afficher sa feuille,
Vous notez la présence de la tâche, telle que nous l'avons décrite, parfaitement restituée en première ligne du tableau de la
feuille Liste_rv . Nous proposons de poursuivre la simulation pour émettre une remarque importante.
Cliquer sur l'onglet Calendrier en bas de la fenêtre Excel pour revenir sur sa feuille,
En I3, conserver le mois précédemment sélectionné,
En J3, définir un jour antérieur au précédent choix,
En K2, modifier la description comme suit : 9h : Entretien téléphonique DG ,
Puis, cliquer sur le bouton + ,
Enfin, afficher la feuille Liste_rv ,
Notre code fonctionne parfaitement pour l'instant. Ce nouveau
rendez-vous est venu s'inscrire à la suite du tableau. Souvenez-vous, c'est la
fonction trouver qui est lancée par la
procédure ajouter . Elle analyse le tableau et trouve la première ligne vierge qu'elle retourne. Vous notez la présence de la date, parfaitement reconstruite en colonne D. Cette fois, c'est la
fonction num_mois qui a été utilisée.
Cependant, bien que cette seconde tâche soit antérieure à la première, elle est classée après. La chronologie n'est donc pas respectée. A chaque clic, nous devons commander la réorganisation des
rendez-vous par appel de la
procédure Trier .
Basculer dans l'éditeur de code (ALT + F11),
A la suite de la procédure ajouter , écrire l'appel comme suit : Trier ,
Enregistrer les modifications (CTRL + S) et revenir sur le classeur (ALT + F11),
Afficher la feuille Calendrier,
Créer une nouvelle tâche en définissant le mois, le jour et la description,
Puis, cliquer sur le bouton + et afficher la feuille Liste_rv ,
Ce nouveau rendez-vous est parfaitement intégré dans le tableau. Cette fois en revanche, vous constatez que la réorganisation a eu lieu.
Les tâches sont désormais classées chronologiquement. Ce tri est précieux pour les travaux à venir. Ils consisteront à permettre d'accéder à l'un des rendez-vous par sa date, pour le supprimer ou le modifier.
Gestion des commentaires pour marquer les tâches
Chaque tâche doit être repérée dans le
calendrier , Ã l'emplacement de sa date, reconstruite en colonne D de la
feuille Liste_rv . L'ajout d'un
commentaire dans une cellule consiste en un code trivial. Une macro automatique le fournirait d'ailleurs. Mais cet ajout doit intervenir pour chaque rendez-vous. Il va donc s'agir d'inclure ce code dans des
boucles . Ces dernières doivent être imbriquées. En même temps que nous parcourons tous les rendez-vous du tableau, nous devons parcourir chaque cellule du calendrier, à la recherche de la correspondance sur les dates.
Revenir dans l'éditeur de code VBA Excel (ALT + F11),
Sous la procédure ajouter , créer la procédure ajouter_com , comme suit :
Sub ajouter_com()
Dim ligne_cal As Integer: Dim colonne_cal As Integer
Dim ligne As Integer: Dim colonne As Integer
Dim la_date As String: Dim le_contenu As String
Dim test as Boolean
ligne = 3: colonne = 2
test = False
End Sub
Nous
déclarons les variables nécessaires pour respectivement scruter les lignes et colonnes des deux feuilles. Nous choisissons l'extension
_cal pour celles de la
feuille Calendrier . Nous déclarons la
variable la_date pour stocker la date de chaque rendez-vous. Ainsi, à chaque passage dans la boucle, nous pourrons la comparer avec les dates du calendrier, pour définir l'emplacement du commentaire associé. La
variable le_contenu doit mémoriser la description de la tâche, à insérer en commentaire. Nous initialisons les variables de la
feuille Liste_rv sur la première cellule du tableau énumérant les rendez-vous (ligne = 3: colonne = 2). La
variable test est un
booléen que nous initialisons Ã
false . Nous l'exploiterons pour mettre fin aux traitements récursifs, lorsque les correspondances seront trouvées.
Nous devons passer en revue tous les rendez-vous de la
feuille Liste_rv . Dans un premier temps, il suffit donc de répliquer la même
boucle While que celle que nous avons exploitée dans la
fonction trouver . Dès qu'une cellule vide est trouvée, son traitement s'arrête. Mais tant qu'un contenu existe, nous pourrons le traiter.
A la suite du code de la procédure, ajouter la boucle While comme suit :
While(Sheets('liste_rv').Cells(ligne, colonne).Value <> '')
la_date = Sheets('liste_rv').Cells(ligne, 4).Value
le_contenu = Sheets('liste_rv').Cells(ligne, 5).Value
test = False
ligne = ligne + 1
Wend
Pour chaque nouvelle ligne, donc pour chaque rendez-vous, nous en profitons pour récupérer l'information sur la date (la_date) et sur la description (le_contenu). Il est important de recaler le
booléen sur
False . Il s'agit d'un indicateur important pour la poursuite du traitement, nous le verrons. Pour chaque tâche, donc à l'intérieur de cette
boucle While , nous devons comparer cette date avec toutes celles du calendrier. Une fois la correspondance trouvée, nous pourrons ajouter le commentaire. Il s'agit donc de balayer toutes les lignes du calendrier (De 7 à 37). Et pour chaque ligne, nous devons balayer toutes les colonnes, soit de C à N (Indice 3 à 14). Lorsque les bornes sont connues et fixes, la
boucle For est dédiée.
Dans la boucle While , avant l'incrémentation de la ligne (ligne = ligne + 1), ajouter l'imbrication des deux boucles For , comme suit :
For ligne_cal = 7 To 37
For colonne_cal = 3 To 14
Next colonne_cal
Next ligne_cal
Ainsi donc, pour chaque rendez-vous (boucle While) dont la date est mémorisée, nous passons en revue chaque ligne du calendrier (For ligne_cal = 7 To 37). Et pour chaque ligne, nous balayons chaque colonne (For colonne_cal = 3 To 14). En d'autres termes, nous analysons chaque cellule du calendrier, dont les références sont données par les indices ligne_cal et colonne_cal.
Nous devons exploiter ces indices pour pointer sur chacune de ces cellules et récupérer leur contenu. Ce contenu est une date. C'est un format personnalisé qui permet des les afficher dans une apparence réduite. Mais elles renferment bien l'information sur la date complète. Cette date doit être comparée à celle du rendez-vous, mémorisée dans la
variable la_date . Si la correspondance est avérée, il s'agit de l'emplacement dans lequel doit se produire l'insertion du commentaire avec le descriptif mémorisé dans la
variable le_contenu .
Pour ce faire, à l'intérieur des boucles For , ajouter les traitements suivants :
For ligne_cal = 7 To 37
For colonne_cal = 3 To 14
If(Sheets('Calendrier').Cells(ligne_cal, colonne_cal).Value = la_date) Then
Cells(ligne_cal, colonne_cal).AddComment
Cells(ligne_cal, colonne_cal).Comment.Visible = False
Cells(ligne_cal, colonne_cal).Comment.Text Text:=le_contenu
test = True
Exit For
End If
Next colonne_cal
If (test = True) Then Exit For
Next ligne_cal
L'
instruction conditionnelle If permet de vérifier la correspondance entre la date en cours d'analyse dans le calendrier (Cells(ligne_cal, colonne_cal).Value) et la date du rendez-vous en cours (la_date). Si l'égalité est vérifiée (Then), nous ajoutons le commentaire en lieu et place (Cells(ligne_cal, colonne_cal)), grâce à la
méthode AddComment de l'
objet Cells . Nous précisons que nous souhaitons l'afficher discrètement sous forme de coche dans la cellule (Comment.Visible = False). Puis, nous remplissons son contenu (Comment.Text Text:=le_contenu).
Comme la correspondance a été trouvée, il n'est pas nécessaire de poursuivre le balayage pour ce rendez-vous. Il faut passer au suivant. Pour cela, nous devons reprendre la
boucle While . Mais pour ce faire, nous devons quitter les deux
boucles For . Nous basculons tout d'abord la
variable booléenne Ã
True , pour indiquer que le test est un succès. Puis, nous quittons la deuxième boucle For imbriquée (Exit For). Avant la borne de la première
boucle For , nous réalisons un test sur le booléen (If (test = True) Then Exit For). S'il vaut
True , nous savons qu'il faut sortir de la boucle (Exit For).
Un dernier réglage est nécessaire avant de tester le bon fonctionnement du code. Un commentaire ne peut être ajouté que si la cellule n'en a pas. Or, à chaque fois que nous allons ajouter une nouvelle tâche, notre procédure tentera d'ajouter un commentaire à chaque rendez-vous déjà traité. Nous devons donc créer une procédure pour purger tous les
commentaires du
calendrier . Appelée avant la
procédure ajouter_com , elle nettoiera l'espace. De fait, tous les commentaires pourront être recréés. Cette méthodologie est intéressante pour les travaux à venir. L'interface de gestion doit notamment proposer de modifier une description. S'il elle est modifiée, son commentaire doit être recréé pour être actualisé.
Au-dessus de la procédure ajouter_com , créer la procédure effacer_com :
Sub effacer_com()
On Error Resume Next
Sheets('Calendrier').Range('C7:N37').ClearComments
End Sub
C'est donc la
méthode ClearComments appliquée sur l'
objet Range définissant la plage de cellules d'une feuille, qui permet de supprimer tous les commentaires présents.
Ces procédures doivent être appelées par la
procédure Ajouter , une fois le tri effectué.
Dans la procédure Ajouter , après l'appel de la fonction Trier , intégrer les deux instructions suivantes :
effacer_com
ajouter_com
Enregistrer les modifications (CTRL + S),
Basculer sur la feuille Calendrier,
Créer un nouveau rendez-vous et l'insérer grâce au bouton + ,
Comme vous le constatez et comme l'illustre la capture ci-dessus, notre code est un succès. Chaque rendez-vous est parfaitement repéré par une coche sur sa date. Au survol de la souris, sa description apparaît instantanément.
Le
code VBA complet pour ce premier volet est le suivant :
Sub ajouter()
Dim ligne As Integer
Dim lannee As Integer: Dim le_mois As Byte: Dim le_jour As Byte
ligne = trouver
Sheets('liste_rv').Cells(ligne, 2).Value = Sheets('Calendrier').Range('I3').Value
Sheets('liste_rv').Cells(ligne, 3).Value = Sheets('Calendrier').Range('J3').Value
Sheets('liste_rv').Cells(ligne, 5).Value = Sheets('Calendrier').Range('K2').Value
lannee = Sheets('Calendrier').Cells(3, 3).Value
le_jour = Sheets('liste_rv').Cells(ligne, 3).Value
le_mois = num_mois(Sheets('liste_rv').Cells(ligne, 2).Value)
Sheets('liste_rv').Cells(ligne, 4).Value = DateSerial(lannee,le_mois, le_jour)
Trier
effacer_com
ajouter_com
End Sub
Sub effacer_com()
On Error Resume Next
Sheets('Calendrier').Range('C7:N37').ClearComments
End Sub
Sub ajouter_com()
Dim ligne_cal As Integer: Dim colonne_cal As Integer
Dim ligne As Integer: Dim colonne As Integer
Dim la_date As String: Dim le_contenu As String
Dim test As Boolean
ligne = 3: colonne = 2
While (Sheets('liste_rv').Cells(ligne, colonne).Value <> '')
la_date = Sheets('liste_rv').Cells(ligne, 4).Value
le_contenu = Sheets('liste_rv').Cells(ligne, 5).Value
test = False
For ligne_cal = 7 To 37
For colonne_cal = 3 To 14
If (Sheets('Calendrier').Cells(ligne_cal, colonne_cal).Value = la_date) Then
Cells(ligne_cal, colonne_cal).AddComment
Cells(ligne_cal, colonne_cal).Comment.Visible = False
Cells(ligne_cal, colonne_cal).Comment.Text Text:=le_contenu
test = True
Exit For
End If
Next colonne_cal
If (test = True) Then Exit For
Next ligne_cal
ligne = ligne + 1
Wend
End Sub
Function trouver() As Integer
Dim ligne As Integer: Dim colonne As Integer
ligne = 3: colonne = 2
While (Sheets('liste_rv').Cells(ligne, colonne).Value <> '')
ligne = ligne + 1
Wend
trouver = ligne
End Function
Sub Trier()
Range('D4').Select
ActiveWorkbook.Worksheets('Liste_rv').Sort.SortFields.Clear
ActiveWorkbook.Worksheets('Liste_rv').Sort.SortFields.Add2Key :=Range('D4:D7' _
), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets('Liste_rv').Sort
.SetRange Range('B3:E1000')
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Function num_mois(le_mois As String)
Select Case le_mois
Case 'Janvier':
num_mois = 1
Case 'Février':
num_mois = 2
Case 'Mars':
num_mois = 3
Case 'Avril':
num_mois = 4
Case 'Mai':
num_mois = 5
Case 'Juin':
num_mois = 6
Case 'Juillet':
num_mois = 7
Case 'Août':
num_mois = 8
Case 'Septembre':
num_mois = 9
Case 'Octobre':
num_mois = 10
Case 'Novembre':
num_mois = 11
Case 'Décembre':
num_mois = 12
End Select
End Function
Dans le prochain volet, il s'agira de développer l'interface permettant à l'utilisateur d'intervenir sur les rendez-vous. Un
UserForm doit lui offrir la possibilité de désigner une tâche par sa date. Dès lors l'interface doit lui permettre de la modifier ou de la supprimer.