Date automatique sans les weekends
Bonjour à tous,
Je ne connais pas bien le VBA mais j'ai très souvent l'occasion de trouver les solutions à mes problèmes sur ce forum, en trifouillant des macros existantes.
Là j'ai un fichier qui répond presque à mes besoins, mais je n'arrive pas à obtenir vraiment ce que je souhaite.
C'est une page où la date s'affiche en automatique en B3.
Cela permet une impression de cette page pour chaque jour du mois sélectionné.
Je souhaiterais deux ajouts dans cette macro :
1) N'imprimer que les jours du lundi au vendredi (et donc supprimer tous les samedis et dimanches).
2) Si possible que l'impression se fasse recto verso.
Merci par avance de votre aide.
Bonjour,
Bonne et heureuse année.
Un truc dans le genre :
Public Sub Impression()
Dim I As Integer
Dim Mois As String
Dim Date_Debut As Date
Dim Date_Fin As Date
Mois = InputBox("Indiquez le mois et l'année à imprimer ( MM/YYYY )", "Saisie du Mois", Format(Date, "mm/yyyy"))
On Error Resume Next
Date_Debut = DateSerial(Year("01/" & Mois), Month("01/" & Mois), 1)
Date_Fin = DateSerial(Year("01/" & Mois), Month("01/" & Mois) + 1, 0)
If Err.Number <> 0 Then
MsgBox "Erreur de Date !", vbExclamation, "Avertissement"
Exit Sub
End If
On Error GoTo 0
If MsgBox("Voulez-vous imprimer les feuilles du " & _
vbCrLf & StrConv(Format(Date_Debut, "dddd dd mmmm yyyy"), vbProperCase) & _
" au " & StrConv(Format(Date_Fin, "dddd dd mmmm yyyy"), vbProperCase) & " ?", _
vbQuestion + vbYesNo, _
"Question") = vbNo Then Exit Sub
For I = 1 To Day(Date_Fin)
If Weekday(I & "/" & Mois, vbMonday) <> 6 And Weekday(I & "/" & Mois, vbMonday) <> 7 Then
ActiveSheet.Cells(3, 2).Value = StrConv(Format(I & "/" & Mois, "dddd dd mmmm yyyy"), vbProperCase)
ActiveSheet.PrintOut Copies:=1
'Worksheets("Planning du " & I).Select (False) <-- il faut qu'elles existent !
End If
Next I
'pour l'impression recto-verso voilà ce que me donne l'enregistreur de macro :
'ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"
' je n'ai pas testé mais je pense que pour que ça fonctionne, il faudrait envoyer toutes les pages d'un coup !
'impression de toutes les feuilles qui ont étés sélectionnées dans la boucle !
'ActiveWindow.SelectedSheets.PrintOut
End SubPour l'impression Recto-Verso, je pense qu'il faudrait envoyer toutes tes pages en une seule fois donc, créer le nombre de pages voulu, les sélectionner :
Worksheets("Planning du " & I).Select (False)et ensuite, imprimer ces dernières d'un seul coup :
ActiveWindow.SelectedSheets.PrintOutBonjour et bonne année également !
Merci beaucoup, le 1) fonctionne parfaitement.
Par contre je n'ai pas bien compris comment obtenir le recto verso...
Mais le fichier me va bien comme ça au final.
Merci encore de votre aide !