Excel : Impression avec date incrementée

Résolu/Fermé
Raijin - 3 juin 2009 à 02:08
NicoDisso Messages postés 230 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 22 août 2009 - 20 juin 2009 à 10:52
Bonjour,

Je souhaite imprimer un planning (avec différentes colonnes) avec la date du premier jour du mois sur la première cellule.

Je n'arrive pas à programmer une macro qui me permettrai en un seul clic de lancer l'impression des jours suivants jusqu'à la fin du mois.

En gros, je souhaite avoir la page 1 avec la date : "Lundi 1er Juin", la page 2 avec la date "Mardi 2 juin"... etc... sans avoir à saisir manuellement le changement de date.

Merci d'avance !
A voir également:

13 réponses

NicoDisso Messages postés 230 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 22 août 2009 32
4 juin 2009 à 11:23
places ca dans un module ou dans le code de ton classeur

Public Sub Impression()

Dim I As Integer
Dim Nb_Feuille As Integer
Dim Mois As String
Dim Jour_01 As Date
Dim Date_Fin As Date
Dim Jour_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
Jour_01 = "01/" & Mois
If Err.Number <> 0 Then
MsgBox "Erreur de Date", vbExclamation, "NicoDisso : Avertissement"
Else
For I = 27 To 31
Date_Fin = I & "/" & Mois
If Err.Number = 0 Then
Nb_Feuille = I
Jour_Fin = Date_Fin
Else
Exit For
End If
Next I
on error goto 0

Select Case MsgBox("Voulez-vous imprimer les feuilles du " & vbCrLf & StrConv(Format(Jour_01, "dddd dd mmmm yyyy"), vbProperCase) & " au " & StrConv(Format(Jour_Fin, "dddd dd mmmm yyyy"), vbProperCase) & " ?", vbQuestion + vbYesNo, "NicoDisso : Question")
Case vbYes
For I = 1 To Nb_Feuille
ActiveSheet.Cells(1, 1).Value = StrConv(Format(I & "/" & Mois, "dddd dd mmmm yyyy"), vbProperCase)
ActiveSheet.PrintOut Copies:=1
Next I
End Select
End If

End Sub

et prepares tes feuilles sur ton imprimante par défaut...

Je sais que ma boucle pour determiner le nb de jour dans le mois est pas terrible mais bon, je voulais pas m'embeter ;-)
2
Je réouvre le topic parce que je voudrais apporter une petite modif' a la macro :

Je m'explique, afin d'imprimer les pages en recto verso, il faudrait que la macro puisse m'imprimer soit les jours paire, soit les jours impaires (eventuellement faire ça en deux macros).

Comment je peux modifier ta macro pour arriver à ce résultat ???
1
Je précise que je travaille sous Excel 2003 et 2007
0
Up !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NicoDisso Messages postés 230 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 22 août 2009 32
4 juin 2009 à 08:48
Qu'est ce que tu appelles la page 1, 2...
C'est le nom des onglets ( le nom de tes feuilles excel en bas de l'écran ) ?
0
Nan nan, mon classeur excel ne contient qu'une seule feuille. Quand je parle de page, je parle bien de ce qui va sortir de l'imprimante !
0
NicoDisso Messages postés 230 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 22 août 2009 32
4 juin 2009 à 10:59
Tu connais donc les cellules qui sont en haut de tes pages ?

0
Oui tout a fait.

En fait pour simplifier, j'ai crée un fichier excel avec en A1 la date du premier juin. Les autres cellules ne contiennent rien d'autres d'important.

Je veux qu'a chaque impression cette cellule A1 passe au jour suivant. Ainsi, j'aurais imprimé 30 pages avec les jours du mois de Juin. Un genre d'agenda 1 page par jour en fait.
0
NicoDisso Messages postés 230 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 22 août 2009 32
4 juin 2009 à 11:05
A ok,
tu imprimes la page 1 autant de fois que de jour dans le mois ?
c'est ca

0
Exactement !

C'est pas facile a expliquer mon histoire !
0
C'est Nickel !

Merci Beaucoup :D
0
NicoDisso Messages postés 230 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 22 août 2009 32
4 juin 2009 à 11:30
merci de ton merci, et penses à marquer ton message résolu ;-)
0
NicoDisso Messages postés 230 Date d'inscription mardi 26 mai 2009 Statut Membre Dernière intervention 22 août 2009 32
20 juin 2009 à 10:52
Hello,
Replaces ca dans un module ou dans le code de ton classeur

Public Sub Impression()

Dim I As Integer
Dim Nb_Feuille As Integer
Dim Mois As String
Dim Jour_01 As Date
Dim Date_Fin As Date
Dim Jour_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
Jour_01 = "01/" & Mois
If Err.Number <> 0 Then
MsgBox "Erreur de Date", vbExclamation, "NicoDisso : Avertissement"
Else
For I = 27 To 31
Date_Fin = I & "/" & Mois
If Err.Number = 0 Then
Nb_Feuille = I
Jour_Fin = Date_Fin
Else
Exit For
End If
Next I
on error goto 0

Select Case MsgBox("Voulez-vous imprimer les feuilles IMPAIRES du " & vbCrLf & StrConv(Format(Jour_01, "dddd dd mmmm yyyy"), vbProperCase) & " au " & StrConv(Format(Jour_Fin, "dddd dd mmmm yyyy"), vbProperCase) & " ?", vbQuestion + vbYesNo, "NicoDisso : Question")
Case vbYes
For I = 1 To Nb_Feuille step 2
ActiveSheet.Cells(1, 1).Value = StrConv(Format(I & "/" & Mois, "dddd dd mmmm yyyy"), vbProperCase)
ActiveSheet.PrintOut Copies:=1
Next I
End Select

Select Case MsgBox("Voulez-vous imprimer les feuilles PAIRES du " & vbCrLf & StrConv(Format(Jour_01, "dddd dd mmmm yyyy"), vbProperCase) & " au " & StrConv(Format(Jour_Fin, "dddd dd mmmm yyyy"), vbProperCase) & " ?", vbQuestion + vbYesNo, "NicoDisso : Question")
Case vbYes
For I = 2 To Nb_Feuille step 2
ActiveSheet.Cells(1, 1).Value = StrConv(Format(I & "/" & Mois, "dddd dd mmmm yyyy"), vbProperCase)
ActiveSheet.PrintOut Copies:=1
Next I
End Select

End If

End Sub
0