OVH Cloud OVH Cloud

Impression auto

2 réponses
Avatar
SEIGNEUR Jean-Luc
Bonjour,

Un petit coup de main serait le bienvenu
Dans un classeur j'ai une feuille avec en:
A1 (le N° de semaine)
A2 (date du lundi de la semaine)
A3 (date du mardi de la semaine)
A4 (date du mercredi de la semaine)
A5 (date du jeudi de la semaine)
A6 (date du vendredi de la semaine)
Je voudrai imprimer les 52 ou 53 feuilles entre le 01/01/04 et le 31/12/04
sur simple clic.
Et ceci avec mise à jour du N° de seaine et des dates pour chaque feuille
En janvier 2005 même chose etc....

D'avance merci

2 réponses

Avatar
isabelle
bonjour Jean-Luc,

je suis pas sur si c'est ce que tu cherche, mais j'essaie tout de même
avec un exemple.

en cellule B1 le premier de l'année à imprimer disont 2004-01-01

1 A1 (le N° de semaine)
±+(7*A1)-JOURSEM(B1;2)+1 A2 (date du lundi de la semaine)
¢+1 A3 (date du mardi de la semaine)
£+1 A4 (date du mercredi de la semaine)
¤+1 A5 (date du jeudi de la semaine)
¥+1 A6 (date du vendredi de la semaine)


et associer cette macro à un bouton que tu aura créé.

Sub PrintSemaine()
For i = 1 To 52
Range("A1") = i
ActiveWindow.SelectedSheets.PrintPreview 'test
ActiveSheet.PrintOut
Next
End Sub

isabelle


Bonjour,

Un petit coup de main serait le bienvenu
Dans un classeur j'ai une feuille avec en:
A1 (le N° de semaine)
A2 (date du lundi de la semaine)
A3 (date du mardi de la semaine)
A4 (date du mercredi de la semaine)
A5 (date du jeudi de la semaine)
A6 (date du vendredi de la semaine)
Je voudrai imprimer les 52 ou 53 feuilles entre le 01/01/04 et le 31/12/04
sur simple clic.
Et ceci avec mise à jour du N° de seaine et des dates pour chaque feuille
En janvier 2005 même chose etc....

D'avance merci


Avatar
Frédéric Sigonneau
Bonjour,

Une autre lecture de ta question (crée un nouveau classeur avec les semaines de
l'année voulue, renseigne pour chaque semaine les cellules A1:A6, enregistre
puis propose au final un aperçu avant impression) :

'==============(dans un module standard d'un classeur quelconque)
Sub Semaines()
Dim Annee, i, Wbk As Workbook, PremierLundi

Annee = InputBox("Semaines de l'année :", , Format(Date, "yyyy"))
If Annee = "" Then Exit Sub
Set Wbk = Workbooks.Add(xlWBATWorksheet)
PremierLundi = DateSerial(Annee, 1, 3) - _
Weekday(DateSerial(Annee, 1, 3)) - 5
i = 1
Application.ScreenUpdating = False
Do
With Wbk.ActiveSheet
.Range("A1").Value = i
.Range("A2").Value = PremierLundi + (7 * i)
With .Range("A3:A6")
.Formula = "¢+1"
.Value2 = .Value2
End With
.Range("A2:A6").NumberFormat = "dddd dd mmmm yyyy"
.Name = Format(i, "00")
End With
i = i + 1
If Year(PremierLundi + (7 * i)) > CLng(Annee) Then Exit Do
Sheets.Add after:=Wbk.Sheets(Sheets.Count)
Loop
Wbk.SaveAs "Semaines de l'année " & Annee
Wbk.Sheets(1).Select

' remplacer PrintPreview par PrintOut pour imprimer
Wbk.PrintPreview

End Sub
'===============================
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !

SEIGNEUR Jean-Luc a écrit:
Bonjour,

Un petit coup de main serait le bienvenu
Dans un classeur j'ai une feuille avec en:
A1 (le N° de semaine)
A2 (date du lundi de la semaine)
A3 (date du mardi de la semaine)
A4 (date du mercredi de la semaine)
A5 (date du jeudi de la semaine)
A6 (date du vendredi de la semaine)
Je voudrai imprimer les 52 ou 53 feuilles entre le 01/01/04 et le 31/12/04
sur simple clic.
Et ceci avec mise à jour du N° de seaine et des dates pour chaque feuille
En janvier 2005 même chose etc....

D'avance merci