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....
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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....
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
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
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....
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....