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
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