Résolu VBA Connaitre le nombre de semaine dans une année

Philou250

Habitué
Bonjour à toutes et à tous,

Je souhaiterai faire une macro en VBA (sur Excel) pour réaliser un "calendrier" de semaine.

Pour la conception de la maco, je suis parti sur un userform qui demande à l'utilisateur de rentrer la date du début et de fin de la période souhaitée à l'aide de deux DTPickers. Suite à ça, une boucle while rentre les nombres des semaines, horizontalement, et à la queue leu leu (pas facile à placer celui là xD) jusqu'à ce que la cellule en cours d'écriture soit égale au DTPicker de la date de fin.

Pour info les cellules sont égales à (DTPicker1.value, "ww",, vbFirstFourDays)
& "Year " & format(DTPicker1.value, "yyyy",, vbFirstFourDays)
Par exemple : 32 Year 2013

Donc le problème, c'est comment faire si l'utilisateur a choisi comme date de début la dixième semaine de 2013 et la trentième semaine de 2014 pour terminer.

En gros, actuellement, la macro incrémente non-stop le nombre des semaines sans changer d'année. Donc la cellule en cours d'écriture ne sera jamais égale à la valeur du DTPicker2 et ça fera une boucle infinie.
 

drul

Obscur pro du hardware
Staff
Pourquoi ne pas utiliser un troisieme dtpicker (invisible) pour faire ta boucle et ta comparaison ? Il gerrera tout seul le passage a une nouvelle année.
 

zeb

Modérateur
Meilleure réponse
Salut,

M'enfin vous deux, vous le faites exprès ?

Code:
Dim d As Date
d = DTPicker1.Value
Do While d < DTPicker2.Value
    ...
    d = DateAdd("ww", 1, d)
Loop

Et ton Format(), tu l'appliques sur d, pas sur DTPicker1.Value...
 

Philou250

Habitué
Ah oui ! avec le DateAdd, ça fonctionne bien mieux.
J'ai envie de dire merci :love:
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 122
Messages
6 717 718
Membres
1 586 356
Dernier membre
TommyStam
Partager cette page
Haut