Bonjour à tous,
Dans mon code j'ai une durée "Nbj" qui est en jours ouvrés, pour la transformée en jour calendaire et sélectionner la plage correspondante j'ai fais ce code :
Mon code ne fonctionne pas, par exemple pour 10 jour ouvrés, il me manque 1 jour calendaire, pour trois jour j'en ai parfois trop, ou bien pas asses
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 For CC = CC To Nbj 'Nbj à été multiplier par 2 car mon clandrier est en 1/2 journée(par colonne) If .Cells(3, CC) <> "" Then 'les dates du calendrier sont sur la ligne 3, je récupère les valeurs pour les conditions dates = .Cells(3, CC) jour = WeekdayName(Weekday(.Cells(3, CC) - 1)) D = Day(.Cells(3, CC)) M = MonthName(Month(.Cells(3, CC))) Dim tmpDate As Date, jDate As Date tmpDate = fLundiPaques(H) jDate = CDate(.Cells(3, CC)) End If If jour = "samedi" Or jour = "dimanche" Or (M = "janvier" And D = 1) Or (M = "mai" And D = 1) Or (M = "mai" And D = 8) _ Or (M = "juillet" And D = 14) Or (M = "août" And D = 15) Or (M = "septembre" And D = 1) Or (M = "novembre" And D = 11) _ Or (M = "décembre" And D = 25) Or jDate = tmpDate Or jDate = tmpDate + 38 Or jDate = tmpDate + 49 Or Nbj = CC Then 'si vrait, je rajoute 2 Nbj = Nbj + 2 End If Next CC .Range(.Cells(3, Cd), .Cells(3, CC)).Select 'une fois la boucle terminée je sélectionne la plage de cellule Palette.Show
Ce qu'il me faudrait c'est une fonction qui à partir de la date de début me transforme les jours ouvrés en jours calendaire mais là ça dépasse mes compétences en vba et je n'ai rien trouvé lors de mes recherches, à croire que tous le monde veut transformer des jour calendaire en jour ouvrés et pas l'inverse
Merci d’avance pour votre aide
Partager