Excel : Impression avec date incrementée

Résolu
Raijin -  
NicoDisso Messages postés 231 Statut Membre -
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. NicoDisso Messages postés 231 Statut Membre 32
     
    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
  2. Raijin
     
    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
  3. Raijin
     
    Je précise que je travaille sous Excel 2003 et 2007
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. NicoDisso Messages postés 231 Statut Membre 32
     
    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
  6. Raijin
     
    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
  7. NicoDisso Messages postés 231 Statut Membre 32
     
    Tu connais donc les cellules qui sont en haut de tes pages ?

    0
  8. Raijin
     
    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
  9. NicoDisso Messages postés 231 Statut Membre 32
     
    A ok,
    tu imprimes la page 1 autant de fois que de jour dans le mois ?
    c'est ca

    0
  10. Raijin
     
    Exactement !

    C'est pas facile a expliquer mon histoire !
    0
  11. NicoDisso Messages postés 231 Statut Membre 32
     
    merci de ton merci, et penses à marquer ton message résolu ;-)
    0
  12. NicoDisso Messages postés 231 Statut Membre 32
     
    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