Utiliser la cellule liée d'une liste déroulante dans une macro

Avaiane Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je suis débutante en programmation avec vb et je suis confrontée à un problème dans le cadre d'un stage.

Je dispose sur une feuille d'une liste de données avec des dates objectifs et les dates où la tache a été achevée réellement. Mon but est de calculer les pénalités à appliquer pour chaque tâche en retard. L'utilisateur doit pouvoir calculer les pénalités en choisissant un mois.

J'ai donc fais une liste déroulante comportant tous les mois. Je souhaite me servir de la date choisie par l'utilisateur de façon à ne m'intéresser qu'aux tâches de la base de donnée qui sont postérieures au calcul.
Ex: l'utilisateur choisit le mois de mars -> je dois uniquement calculer les pénalités des tâches dont la date d'objectif est située avant mars.

Mon problème est le suivant: dans la cellule liée à la liste déroulante, je n'ai que le numéro de ligne. Je ne peux donc pas m'en servir par la suite pour comparer la date d'objectif des taches avec la date choisie par l'utilisateur. Y a-t-il un moyen pour transformer la cellule liée en date?

Merci d'avance à ceux qui prendront le temps de m'aider



2 réponses

via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Bonsoir Avaiane

pas besoin de la cellule liée, tu peux utiliser la cellule de la liste déroulante et en fonction du mois avec un Select Case retourner une date

Exemple avec la liste déroulante en C10
Select Case Range("C10")
Case "janvier"
madate = CDate("01/01/2015")
Case "février"
madate = CDate("01/02/2015")
' Continuer avec Case "mars" etc
End Select


Cdlmnt
Via
0
Avaiane Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Via,

Je te remercie pour ta réponse.

Je suis désormais fasse à un autre problème. Ma liste déroulante contient les mois de l'année. Je souhaite que lorsque l'utilisateur sélectionne le mois de mars par exemple, seul les tâches qui ont été créées en mars apparaissent dans mon tableau. Y a-t-il un moyen de vérifier si une date donnée est bien comprise dans le mois sélectionné?
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Bonjour Avalane

Oui tu peux vérifier le mois puisque dans la macro de mon message précédent, la variable madate contient une date, donc avec l'instruction MONTH(madate) tu auras le mois voulu.
Reste avec un IF à comparer si les dates de ton tableau correspondent, par exemple avec les dates dans la plage C2:C100 de la feuille nommée Données :
For n=2 to 100
If month(sheets("Données").range("C" & n))=month(madate) then
'instruction à réaliser si c'est le bon mois
'''''
End if
Next n


Cdlmnt
Via
0