Accueil > Forum > > > > Une feuille par jour ouvré
Une feuille par jour ouvré
mercredi 12 septembre 2007 à 15:48:07 |
Une feuille par jour ouvré

anthonyo
|
Bonjour, J'aimerai un peu d'aide pour créer une feuille pour chaque jour ouvré de l'année. Voici le code qui me créé une feuille mais pour chaque jour de l'année saisie en inputbox: Sub Calendjourfeuille() Application.ScreenUpdating = False année = Val(InputBox("Quelle année ?")) If année = 0 Then Exit Sub x = DateSerial(année, 1, 1) y = DateValue("31 décembre " & année) For I = 0 To y - x ActiveWorkbook.Sheets.Add after:=Worksheets(Worksheets.Count) ActiveSheet.Name = Format(x + I, "dd-mm-yy") Next End Sub Comment faire pour ne retenir que les jours ouvrés? Merci pour votre aide
|
|
mercredi 12 septembre 2007 à 18:01:47 |
Re : Une feuille par jour ouvré

mrdep1978
|
Réponse acceptée !
Salut,
Pour les week-end, tu peux utiliser la fonction DatePart pour identifier à quelle jour de la semaine correspondent chacune de tes dates Ex : 'Si le jour n'est ni un samedi (6), ni un dimanche (7) If Datepart("w", maDate, vbMonday) < 6 Then 'Je crée ma feuille End If
Pour les jours fériés, du type lundi de pâques, jeudi de l'ascencion ..., il parait qu'il y a de superbes formules mathématiques, mais je ne sais plus lesquelles.
Sinon, petits conseils en vrac : - Evite les accents dans tes noms de variables (année -> annee) (risque de coincer avec un Windows non français) - Remplace "y = DateValue("31 décembre " & année) " par "y = DateSerial(annee, 12, 31)" (risque de coincer sur un PC utilisant un autre format de date)
|
|
jeudi 13 septembre 2007 à 00:13:37 |
Re : Une feuille par jour ouvré

JMO
|
 Bonsoir à tous, Je n'ai fait qu'adapter un script, trouvé en vb6, sur l' algorithme de Oudin. Testé en vbs et donc à ré-adapter pour vb6 + la partie Excel. Option explicit
Dim Annee, DateDeb, DateFin, NbreJours,i Annee = 2007
DateDeb = DateSerial(Annee, 1, 1) DateFin = DateSerial(Annee+1, 1, 1 - 1) NbreJours = DateDiff("d",DateDeb, DateFin)
For i=0 To NbreJours If IsFerie(DateSerial(Annee, 1, 1+i)) = False Then 'ici écriture Excel ou autre MsgBox DateSerial(Annee, 1, 1+i) &vbCrLf& _ IsFerie(DateSerial(Annee, 1, 1+i)),, _ "IsFerie = False , jour ouvré" End If Next
Private Function IsFerie(datetoanalyse) 'As Date) As Boolean Dim jour, Mois, Annee, Ascension, Pentecote, Paques 'As Integer Dim G, C, C_4, E, H, k, P, Q, i, B, J1, J2 'As Integer
If DatePart("w", CDate(datetoanalyse)) = vbSaturday Or _ DatePart("w", CDate(datetoanalyse)) = vbSunday Then IsFerie = True : Exit Function End if jour = Day(datetoanalyse) Mois = Month(datetoanalyse) Annee = Year(datetoanalyse) 'Calcul des jours fériés "non fixes" (Lundi de Pâques, Ascension, Pentecôte) 'Lundi de Pâques (Algorithme de Oudin) G = (Annee Mod 19) C = Fix(Annee / 100) C_4 = Fix(C / 4) E = Fix((8 * C + 13) / 25) H = Fix((19 * G + C - C_4 - E + 15) Mod 30) k = Fix(H / 28) P = Fix(29 / (H + 1)) Q = Fix((21 - G) / 11) i = ((k * P * Q - 1) * k + H) B = (Fix(Annee / 4) + Annee) J1 = (B + i + 2 + C_4 - C) J2 = (J1 Mod 7) 'Ici on obtient le jour de Pâques (dimanche), on lui ajoute 1 pour avoir le jour du lundi paques = 28 + i - J2 + 1 'Ascension Ascension = paques - 23 'Pentecôte Pentecote = paques - 12 Select Case Mois Case 1 'Jour de l'An If jour = 1 Then IsFerie = True Case 3 'Pâques si paques<=31 If paques <= 31 Then If jour = paques Then IsFerie = True End If Case 4 'Pâques si paques>31 If paques > 31 Then paques = paques - 31 If jour = paques Then IsFerie = True End If Case 5 'Fête du travail, Victoire, Ascension et Pentecôte If jour = 1 Or jour = 8 Or jour = Ascension Or jour = Pentecote Then IsFerie = True Case 7 'Fête Nationale If jour = 14 Then IsFerie = True Case 8 'Assomption If jour = 15 Then IsFerie = True Case 11 'Toussaint et Armistice If jour = 1 Or jour = 11 Then IsFerie = True Case 12 'Noël If jour = 25 Then IsFerie = True Case Else IsFerie = False End Select End Functionjean-marc
|
|
jeudi 13 septembre 2007 à 09:38:20 |
Re : Une feuille par jour ouvré

anthonyo
|
Ok, je teste cela et je reviens vers vous! Merci! 
|
|
vendredi 14 septembre 2007 à 08:50:29 |
Re : Une feuille par jour ouvré

anthonyo
|
Merci pour votre aide!  JMO, j'ai pris ton code et je le garde sous le coude; j'ai pas encore eu le tps de l'adapter!
|
|
Cette discussion est classée dans : aide, feuille, jour, année, ouvré
Répondre à ce message
Sujets en rapport avec ce message
debutant aide!!!!!!!!!!!! [ par Debutant ]
Salut , comment faut faire pour donner le jour dans un label ?lundi mardi mercredi le jour qu on est quoi
Mise à jour d'un DBCombo? [ par joul ]
Bonjour,J'ai un problème avec un dbccombo : Dans 1 feuille j'ai un dbcombo qui affiche des fournisseurs. Dans une autre feuille, je peut créer des fou
AIDE DATA SVP ! [ par Seb ]
Je fais un programme jeu :j ai une basse access que j accede grace au data de vb et j aimerai mettre a jour le score d'une personne à la fin d un jeu.
[b]HELP[/b] URGENT: mise à jour automatique d'une feuille Excel dans Word [ par morgane ]
Bonjour,normalement, lorsqu'on veut mettre à jour une feuille de calcul excel insérée dans un document d'un autre format(Word par exemple) on est obli
macro pour changer le nom de la feuille active exel en date du jour [ par taungkid ]
qui peut me dire comment on fait une macro qui me permet de changer le nom de la feuille sur laquelle je travaille dans exel en date du jour ex:Feuil1
aide sur les feuilles MDI [ par AraGorN ]
bonjour all,Je voudrais savoir comment marche les feuille MDI, en utilisant une feuille normale a l'interieur.Merci++AraGorN
date [ par wareg ]
bonjourqu'elle est le code qui permet de calculer la différence entre deux dates au format jour, mois et année, sachant qu'il y a des text1, 2 et 3 po
BESOIN D'AIDE !!! [ par chris ]
Bonjour,Je suis bloqué en VBVoila, pour une feuille de cours je fais un petit calcule du type pourcentage: LePrix.Value = (((LePrix.Value * 3)/100)+ L
Do Loop pour avoir jour mois année [ par Testuo ]
'lut, suis nouveau, commence juste la programmation. Sur Vb il met demandé de vérifier la validité de l'entrée année, mois et jour.Seulement pour le j
Existe-t-il une variable "quantième du jour de l'année" ???.... [ par JMO ]
Bonjour,J'ai besoin d'une variable AAQQQ pour deleter des fichiers archivés sur serveur.La proc deleterait les fichiers TEST_AAQQQ (-5 jours) dans un
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|