Trouver le dernier jour ouvrés de l'année

br44

XLDnaute Impliqué
Bonjour à tous ,


Je voudrais savoire si il est possible de modifier la macro suivante pour extraire le dernier jour ouvré de l'année ,afin que je me serve du rèsultat pour déclancher une macro de sauvegarde annuelle ?

Exemple : Si le dernier jour ouvrée est le mercredi 31/12 pas de soussi ,mais si le dernier jour du mois est le samedi 31 ou le dimanche 31 ,le dernier jour ouvré sera donc le vendredi 28 ou 29 date sur la quelle la macro devra se déclancher .


Voici une macro poster sur le forum par Boisgontier le 01/07/2008 qui permet de claculer le nombre de jour ouvrés :

Function NbJoursOuvres(début, fin)
Dim i As Integer, d As Long, nfériés As Integer, témoin As Boolean
Dim fériés(1 To 11)
An = Year(début)
If début > fin Then
NbJoursOuvres = 0
Else
paques = DateSerial(An, 3, 23) + ((2 * (An Mod 4) + (4 * (An Mod 7) + _
(6 * (((19 * (An Mod 19)) + 24) Mod 30) + 5))) Mod 7) + _
((19 * (An Mod 19) + 24) Mod 30) - 1
fériés(1) = DateSerial(An, 1, 1)
fériés(2) = DateSerial(An, 5, 1)
fériés(3) = DateSerial(An, 5, 8)
fériés(4) = DateSerial(An, 7, 14)
fériés(5) = DateSerial(An, 8, 15)
fériés(6) = DateSerial(An, 11, 1)
fériés(7) = DateSerial(An, 11, 11)
fériés(8) = DateSerial(An, 12, 25)
fériés(9) = paques + 1
fériés(10) = paques + 39
fériés(11) = paques + 50
NbJoursOuvres = 0
For d = début To fin
témoin = False
For i = 1 To 11
If d = fériés(i) Then témoin = True
Next i
If Weekday(d) <> 1 And Weekday(d) <> 7 And Not témoin Then NbJoursOuvres = NbJoursOuvres + 1
Next d
End If
End Function


En resumé :
1) Comment afficher le resulta dans la macro est le convertir au formar Date(jj/mm/aaaa) pour que je puisse la compare avec la date de ma cellule contenant la date du jour ?

2) Mettre la condition sur ma macro pour quelle s'enclanche de la manière suivante /

Si date de la macro 1 est ègal à la date de la cellule ("F3") alors èxècute la macro2 ?

Ci -joint ma macro :
Sub Test()

Dim Wb1 As Workbook
Dim Chemin As String


Chemin = "C:\Documents and Settings\Rimmele\Bureau\classeur2.Xls"
Set Wb1 = Workbooks.Open(Chemin)

If CDadte=Macro1 Then

ActiveWorkbook.SaveCopyAs "C:\Documents and Settings\Rimmele\Bureau\sauv1\sauv2\classeur" & Year(Wb1.Sheets(1).[F3]) & ".XLS"

End if

Wb1.Close
End Sub

Espèrant avoir ètè claire dans ma demande et vous remerciant par avance je vous dit à bientôt sur post . Amicalement BR44
 

br44

XLDnaute Impliqué
Re : Trouver le dernier jour ouvrés de l'année

Re:Bonsoir Pierrejean,chit160,le forum


Un grand merçi pour ta solution je la teste dès demain (plus de temps se soire ) et je te tien au courant dans la foulé .


Juste une petite question en passant : pourquoi sèpare-tu l'ensemble en deux partie ?


je te vous doit donc à demain bonne soirée à tous et merçi encore pour le coup de main . Amicalement Br44
 

br44

XLDnaute Impliqué
Re : Trouver le dernier jour ouvrés de l'année

Re: Bonsoir PierrJean ,le forum


Comme prèvu dans mon dernier message ,je viens donner des nouvelles .


PierreJean ,j'ai juste une petite question à te poser :

je voudrais savoire comment d'eclancher ta macro pour la tester ?


j'ai placé les èlèment comme tu me la coseiller mes il y a pas de commande pour l'enclancher ?

Si tu peux m'indiquer la demarche où la procèdure correspondante se serais bien .

Je te remercie par avance et te dis à plus .Amicelement Br44
 

br44

XLDnaute Impliqué
Re : Trouver le dernier jour ouvrés de l'année

Re:Rebonsoir Pierrejean ,le forum

Bon et bien je vient de tester en modifiant le date de mon classeur source à plusieur reprise ,mais rien ne se passe ,aucune copie , je suis désoler de t'annoncer cette nouvelle .


Si tu as une autre solution ?

je mets la partie de ma macro qui est place comme tu la indiquer mais sans le Call ,car avec il beug :

Private Sub Worksheet_Change(ByVal Target AsRange)
If Target.Address = "$F$3" Then
If CDate(Target.Value) = derjourouvre(Year(Date)) Then

ActiveWorkbook.SaveCopyAs "C:\Documents and Settings\Rimmele\Bureau\sauv1\sauv2\classeur" & Year(Wb1.Sheets(1).[F3]) & ".XLS"

End If
End If
End Sub



Je te quitte en te remerciant par avance et te dis à plus sur se fil .Amicalement BR44
 

br44

XLDnaute Impliqué
Re : Trouver le dernier jour ouvrés de l'année

Re: Bonsoir à tous le forum ,


Je suis toujour en recherche du solution à mon problème , et je comme ne plus rien comprendre .


j'ai voulu mettre une condition mais malgré ça la macro se dèclanche ?

Je vous joint les deux classeurs consernés plus le fichier de destination ,le tout se dècompose de la manièrere suivante :

Le classeur1 contient ma macro dans le thisworkbook
Le classeur 2 est le classeur qui contient la cellule "F3"
le dernier èlèment est le fichier de destination .

Le but : je voudrais que la macro se dèclanche que lorsque la date situé dans le cellule "F3" est ègal au dernier jour ouvré de l'année .

Exemple: si "F3" affiche le 31/12/2009 le dernier jour ouvré de l'année 2009 ètant lui aussi le 31/12 alors èxècute la macro .

Si quelqu'un peux m'aider se serais gènial .Je vous remerçie tous par avance est vous dit à bientôt . Amicalement Br44
 

Pièces jointes

  • Classeur1.xls
    32 KB · Affichages: 79
  • sauv1.zip
    122 bytes · Affichages: 35
  • Classeur2.xls
    19 KB · Affichages: 73
  • Classeur1.xls
    32 KB · Affichages: 79
  • sauv1.zip
    122 bytes · Affichages: 34
  • Classeur2.xls
    19 KB · Affichages: 88
  • Classeur1.xls
    32 KB · Affichages: 74
  • sauv1.zip
    122 bytes · Affichages: 33
  • Classeur2.xls
    19 KB · Affichages: 77

pierrejean

XLDnaute Barbatruc
Re : Trouver le dernier jour ouvrés de l'année

Re

je ne saisis pas bien le pourquoi de tous ces fichiers

En attendant teste le fichier joint

Mais avant de l'ouvrir fait ce que je t'ai demandé a savoir mettre la date de ton ordinateur au 31/12/2009 (ou a n'importe quel dernier jour ouvré de n'importe quelle année )
Il doit se passer:
la feuil1 est selectionnée ,la cellule F3 reçoit la date de l'ordinateur via la macro thisworkbook_open
Si cette date est le dernier jour ouvré de l'année la macro tamacro (module2) est declanchée
Il ne te reste plus qu'a mettre ce que tu souhaites dans tamacro
 

Pièces jointes

  • br44Classeur1.zip
    10.4 KB · Affichages: 12
  • br44Classeur1.zip
    10.4 KB · Affichages: 12
  • br44Classeur1.zip
    10.4 KB · Affichages: 13

br44

XLDnaute Impliqué
Re : Trouver le dernier jour ouvrés de l'année

Re: Bonsoir PierreJean ,le forum


Un grand merçi à toi pour ta rèponse ,et milles excuses pour le temps mis à te rèpnodre mais je suis rentré de week-end se midi.


Je vient de tester ton program en suivant tes explications est je te confirme que cela marche .


Le seul petit soussi est que je ne veux pas afficher la date de l'ordinateur pour comparer avec le dernier jour ouvrée mais la date qui sera afficher dans la cellule "f3" .

je vais essayer de modifier ta macro pour parvenir à ce rèsultat .

Si de ton côte tu à une autre solution je suis preneur .


Te remerciant apr avance du coup de main je te dis à bientôt . Amicelemnt BR44
 

br44

XLDnaute Impliqué
Re : Trouver le dernier jour ouvrés de l'année

Re: Bonsoir PierreJean ,le forum


Un très grand merçi à toi pour ta proposition .

Je viens de tester et cela fonctione très très bien Youpi !!!!


Voilà qui mes donc fin à se post .

je vous quitte et remercie tous ceux qui ont contribué à la rèsolution de mon problème . A bientôt et amitiès à tous BR44
 

Discussions similaires

Statistiques des forums

Discussions
313 275
Messages
2 096 757
Membres
106 742
dernier inscrit
claudetreguer