Liste dates selon conditions

Bonjour à tous,

J'ai un sujet qui me tiens tête. Je suis complètement débutante pour tout ce qui est macro. Cependant, j'ai un exercice à réaliser (je vous mets le sujet en pièce joints). En ce qui concerne les inputbox j'ai déjà réaliser ces commandes :

Dim Anniversaire As Date

Anniversaire = InputBox("Saisir ta date d'anniversaire en format jj/mm/aaaa", "Date anniversaire")

Anniversaire = Format(Range("A2").Value, "dd/mm/yyyy")

Dim Début As String

Début = InputBox("Saisir l'année de début", "Année de début")

Range("B2").Value = Début

Dim Fin As String

Fin = InputBox("Saisir l'année de fin", "Année de fin")

Range("C2").Value = Fin

Mais la partie sur afficher la liste de tous les samedi qui contiennent la date de mon anniversaire qui se situe en cellule A2 dans l'intervalle des années définie en B2 et C2 reste un grand mystère pour moi...

Est-ce que quelqu'un pourrait me venir en aide ?

17consigne-ex2.docx (59.36 Ko)

Bonjour,

S'agissant d'un exercice, je vais te guider sans te donner la solution ...

Saisie de la date :

=> OK pour l'inputbox

=> Mais il faut affecter le résultat à une variable "texte" pour la contrôler ensuite. Si tu l'affectes à une variable date et que la saisie n'est pas une date, cela entraînera une erreur

=> pour contrôler la saisie : utilisation de l'instruction "IsDate" :

If Not IsDate(sDate) Then

Saisie de l'année de début et de fin

=> Ce n'est pas ce qui est demandé !

=> Saisie d'un nombre d'années

=> Et contrôle qu'il s'agit d'un nombre : idem que la date, avec IsNumeric()

Ensuite une boucle de l'année 2020 à l'année 2020 + nombre d'années

=> Pour chaque année, tu recherches le jour de la semaine, avec la fonction "Weekday", je te laisse voir à quel n° correspond le samedi.

  If Weekday(DateSerial(iAnnee, Month(sDate), Day(sDate))) = ? Then

Si c'est un samedi, tu écris la date sur la ligne X (n°de ligne à initialiser au début)

Et tu incrémentes le n° de ligne pour le suivant

Sinon : rien, la boucle passe sur l'année suivante.

Tous ces points devraient t'aider à avancer ...

Bon courage

Bouben

Merci Bouben pour ton aide!

Mais étant vraiment débutante je ne comprend pas ta formule

If Weekday(DateSerial(iAnnee, Month(sDate), Day(sDate))) = ? Then

IAnnee correspond à quoi? Comment je peux lui dire de venir chercher 2020 + x nombre d'année qui sont défini par cellule C2-B2?

Dans Month et Day, je dois bien remettre mon (Anniversaire) pour qu'il vienne me chercher le jour et le mois entrer dans l'inputbox c'est ça?

J'ai réussi à trouver des formules me permettant de me rapprocher de la mise en forme demandée.. mais toujours pas à afficher ces samedi d'anniversaire...

Je joins le fichier que j'ai fais..

Merci de m'éclairer, c'est vraiment pas évident pour moi!

15essai2.xlsm (21.74 Ko)

Hello,

Quelques réponses pour avancer :

Dim Anniversaire As Date

Cette variable va recevoir la date saisie (ce n'est pas forcément une date, si l'utilisateur saisit autre chose).

=> à déclarer en "String"

Ensuite, pour le contrôle, OK, reste à afficher un message !

Début & Fin

Comme je l'ai indiqué : on ne demande pas la saisie de 2 années mais d'une durée.

Par ailleurs, pas de caractère spéciaux dans les variables (lettres uniquement, majuscules et minuscules, voire des chiffres)

Donc, une seule inputbox, qui affecte le résultat à une variable (string) + contrôle numérique et message si la saisie n'est pas bonne.

Une fois les 2 paramètres saisis (Anniversaire et durée), tu vas mettre en place une boucle.

En utilisant une variable sur laquelle tu boucles (nommée iAnnee dans l'exemple)

Année de départ : année en cours (ou date d'anniversaire initiale, au choix)

Année de fin : année départ + durée

A l'intérieur de la boucle, tu testes la date reconstituée, avec :

> l'année de la boucle

> le mois et le jour de la date initiale

Via la fonction "DateSerial"

Et tu testes le jour de la semaine de cette date

Via la fonction "Weekday"

Je te laisse un peu avancer et nous renvoyer une nouvelle version avec ces points.

Bouben

Rechercher des sujets similaires à "liste dates conditions"