Excel : Impression avec date incrementée

Résolu
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 !
Configuration: Windows Vista
Safari 530.5

13 réponses

  1. 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 ;-)
    1. 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 ) ?
      1. 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 !
        1. 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.
          1. A ok,
            tu imprimes la page 1 autant de fois que de jour dans le mois ?
            c'est ca

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