VBA : récupérer premier jour de la semaine

  • Initiateur de la discussion Initiateur de la discussion Tib
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Tib

XLDnaute Nouveau
Bonjour à tous,
J'ai récupéré un fichier et un code construit par une personne ne faisant plus partie de l'entreprise et le passage à l'année 2019 me pose un soucis. C'est un fichier dans lequel j'intègre des dates de contrats. A partir de ces dates (date de début et date de fin), un calcul automatique du numéro de semaine se fait.
Or depuis 2019, j'ai un décalage d'une semaine dans le fichier. Il considère que la semaine 1 commence le 07/01. Le fichier a un code long comme le bras. J'ai essayé d'isoler le code (sans certitude) mais voici ce que j'ai trouvé :

'#### RECUPERE LE PREMIER JOUR DE LA SEMAINE ####
For i = CDate("01/01/" & CStr(ComboBoxAnnee.Value)) To CDate("07/01/" & CStr(ComboBoxAnnee.Value))
If Weekday(i) = 2 Then
NumSemaine = i - 3
Exit For
End If
Next
Lundi = NumSemaine + 3 + 7 * (ComboBoxNumSemaine.Value - 1)
Dimanche = Lundi + 6

Pouvez-vous (si c'est le bonne portion de code) me dire ce qui ne va pas dans ce code ?

Merci infiniment pour votre aide et très belle soirée à toutes et tous.

Tib
 
Salut Tib,
Voici une petite fonction qui te permettra de calculer la date
VB:
Function DateSemaineFR(ByVal intAnnee As Integer, Optional ByVal intSemaine As Integer = 1)
  Dim dt As Date
  ' Trouver le 1er jour de la semaine 1 de l'année
  dt = DateSerial(intAnnee, 1, 1)
  While DatePart("ww", dt, vbMonday, vbFirstFourDays) <> 1
    dt = dt + 1
  Wend
  ' Calculer le 1er jour de la semaine demandée
  dt = dt - DatePart("w", dt, vbMonday) + 1
  dt = dt + 7 * (intSemaine - 1)
  DateSemaineFR = dt
End Function

Pour appeler la fonction il suffit de faire
VB:
Lundi = DateSemaineFR(comboboxAnnee.vaue, ComboBoxNumSemaine.Value)
Dimanche = Lundi + 6

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 N° de semaine
Réponses
4
Affichages
212
Réponses
5
Affichages
387
Réponses
10
Affichages
303
Retour