Création Liste déroulante de date selon N° de Semaine

Bonjour à tous,

Je vous sollicite pour la création d'une liste déroulante en fonction d'une autre liste déroulante (en cascade)

Dans le fichier joint, j'ai une liste déroulante en C2 avec les numéros de semaine.

Je voudrai créer une 2ème liste déroulante en D2 qui comporterait les jours de la semaine sélectionnée (hors samedi et dimanche)

J'ai créer une base de données des dates dans l'onglet paramètres pour faciliter (ou pas ) la création.

Merci d'avance pour aide

Isabelle

29test.xlsx (23.21 Ko)

Bonjour Isabelle,

Avec ta liste des dates et semaines, ce qui suit devrait fonctionner:

en D2: Validation des données > Autoriser: Liste > Source:

=DECALER(Paramètres!$D$1;EQUIV($C$2;Paramètres!$E$1:$E$261;0)-1;;NB.SI(Paramètres!$E$1:$E$261;$C$2))

Bonjour,

Autre proposition avec des paramètres beaucoup plus simples via l'utilisation de ma fonction personnalisée

date_1er_jour_semaine(Année; Numéro de semaine),

ajoutée dans le module VBA : fonctions_date

39test1.xlsm (19.63 Ko)

Re,

Merci bcp pour vos réponses rapides.

@U. Milité : Après essai, je ne parviens pas à utiliser ta solution.

Message d'erreur : "Vous ne pouvez pas faire référence à d'autres feuilles ou classeurs pour les critères Validation de données"

@ thev : ça fonctionne parfaitement. J'ai plus qu'à éplucher cette fonction pour la comprendre.

Je suis plus adepte de VBA que des formules, mais par curiosité, je veux bien comprendre également la 1ère solution en formule

Je vous remercie pour votre aide et efficacité

Isabelle

Bonsoir,

Une autre proposition à étudier.

Cdlt.

14isabelle78.xlsm (26.56 Ko)
Public Function fnMondayInISOweek(iWeek As Integer, Optional iYear As Integer) As Date
    If iYear = 0 Then iYear = Year(Date)
    fnMondayInISOweek = 7 * iWeek + DateSerial(iYear, 1, 3) - Weekday(DateSerial(iYear, 1, 3)) - 5
End Function

Public Function fnWeeksInYear(iYear As Integer) As Byte
    fnWeeksInYear = DatePart("ww", DateSerial(iYear, 12, 28), 2, 2)
End Function

Re-bonjour,

@U. Milité : Après essai, je ne parviens pas à utiliser ta solution.

Message d'erreur : "Vous ne pouvez pas faire référence à d'autres feuilles ou classeurs pour les critères Validation de données"

J'aurais juré qu'avec ta version 2013, cet obstacle serait levé !?

On peut sans doute contourner (comme avant), en utilisant des plages nommées ... teste le classeur en pièce jointe et dis-nous si ça fonctionne.

... Ceci dit, si tu préfères une solution par macro, je tenterai de ne pas me défenestrer tout de suite

J'ai plus qu'à éplucher cette fonction pour la comprendre

Si tu t'intéresses à ma fonction que je n'ai pas documentée à l'époque, je voudrais juste préciser que la dernière boucle correspond au cas particulier où le premier jour de la semaine de l'année n'est pas le premier jour de la semaine car la semaine a en fait débuté l'année précédente.

@U. Milité

J'aurais juré qu'avec ta version 2013, cet obstacle serait levé !?

Oups je travaille sur excel 2013, mais j'ai testé ta solution de chez moi (excel 2007)

Je préfère effectivement travailler les macros mais je suis toujours intéressée par les formules.

Tant que je progresse sous excel

Merci, la 2ème solution fonctionne parfaitement... sous 2007

Isabelle

Bonsoir Jean-Eric

Toujours au rendez vous quand j'ai une question

Merci également, faut que je regarde comment fonctionne tous ça (tableaux et fonction)

Bonne soirée

isabelle

Si tu t'intéresses à ma fonction que je n'ai pas documentée à l'époque, je voudrais juste préciser que la dernière boucle correspond au cas particulier où le premier jour de la semaine de l'année n'est pas le premier jour de la semaine car la semaine a en fait débuté l'année précédente.

Merci pour cette précision. Ta fonction fait mal à la tête au premier abord pour une novice

Bonne soirée

Isabelle

Rechercher des sujets similaires à "creation liste deroulante date semaine"