Mit Seitenzahl rechnen, Seiten automatisiert erstellen
#1
Hallo,

ich habe eine Frage zu einem Kalender den ich erstellt habe.

Ich möchte für jede KW ein einzelnes Blatt ausdrucken.

So sieht der obere Teil des Blattes aus.
   

Das Datum errechne ich mit einer Formel.
Code:
=DATUM(B1;1;7*A1-3-WOCHENTAG(DATUM(B1;;);3))

In A1 steht die KW und in B1 das Jahr.

Nun würde ich gerne für jede KW ein Blatt ausdrucken.

Kann Excel mir automatisch mehrere Seiten Anlegen und A1 hochzählen?

Den Kalender muss ich vermutlich die nächsten Jahre so ausdrucken. Würde aber ungerne 52 Seiten in dem Exceldokument anlegen.
Antworten Top
#2
So sieht das ganze Sheet aus.
Die Schrift in A1 und B1 KW und dem Jahr sind weiß.

   
Antworten Top
#3
Hi,

du brauchst nicht mehrere Tabellenblätter erzeugen. Es reicht doch A1 zu ändern und zu drucken.

Code:
Sub drucken()
Dim i As Long
For i = 1 To 12
    Range("A1") = i
    ActiveSheet.PrintOut
Next
End Sub
Nächstes Jahr änderst du dann nur noch B1 und rufst das Marko erneut auf.
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
[-] Folgende(r) 1 Nutzer sagt Danke an HKindler für diesen Beitrag:
  • ipod86
Antworten Top
#4
Danke für die Antwort. 

Doofe Frage... 
Ist das VBA?

Die 12 ist die Anzahl der schliefen? Für ein ganzes Jahr dann also eine 52?
Antworten Top
#5
Hi,

klar ist das VBA. Anders kannst du Excel nicht automatisieren.

Und ja, die 12 müsste 52 heißen. Habe das aus irgendeinem Grund gedanklich mit Monaten gemacht.

Um dies als Makro anzuwenden, kopierst du zuerst den Code in die Zwischenablage (hier markieren und dann Strg-C). Dann gehst du in Excel und öffnest z.B. mit Alt-F11 den VBA-Editor.
Links hast du den Projekt-Explorer. Dort machst du auf einem Element deiner Datei (z.B. Tabelle1) einen Rechtsklick und wählst "Einfügen"-->"Modul".
Damit erhältst du einen neuen Ordner "Module" und darin "Modul1". Mach einen Doppelklick auf "Modul1" und drücke dann Strg-V. Dann sollte es ungefähr so aussehen:
   
Jetzt kannst du das Makro anwenden. Also, entweder direkt F5 drücken oder in Excel im Menu "Entwicklertools" auf "Makros" klicken und dort auswählen. Oder du fügst einen Button aus den Steuerelementen ein und weist diesem das Makro zu.

Aber Vorsicht: mit jedem Aufruf werden direkt 52 Blätter gedruckt!

EDIT: Die Datei musst du jetzt natürlich als *.xlsm sepichern.
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
[-] Folgende(r) 1 Nutzer sagt Danke an HKindler für diesen Beitrag:
  • ipod86
Antworten Top
#6
Klappt, vielen Dank für die tolle Hilfe.
Antworten Top
#7
(19.10.2022, 10:19)HKindler schrieb: Hi,

du brauchst nicht mehrere Tabellenblätter erzeugen. Es reicht doch A1 zu ändern und zu drucken.

Code:
Sub drucken()
Dim i As Long
For i = 1 To 12
    Range("A1") = i
    ActiveSheet.PrintOut
Next
End Sub
Nächstes Jahr änderst du dann nur noch B1 und rufst das Marko erneut auf.

Hallo, 

ich habe doch nochmal eine Frage. 
Möchte das Sheet so anpassen, dass es auch andere leicht bedienen können. 

Wie muss ich den Code für folgenden Fall anpassen? 

Die Mappe besteht jetzt aus 2 Arbeitsblättern. 

Einmal aus "Einstellungen" und "Kalender. 

Die Schleife soll jetzt:
Zelle C5 aus" Kalender" von dem Wert A1 bis B1 aus dem Blatt "Einstellungen" hochzählen. 

Beim Drucken soll nur das Blatt "Kalender" gedruckt werden. 

Das VBA lege ich dann auf einen Button auf der Seite "Einstellungen".
Antworten Top
#8
Glaube hab es hinbekommen, scheint zumindest zu klappen.

Code:
Sub drucken()
Dim i As Long
For i = Worksheets("Einstellungen").Range("C3") To Worksheets("Einstellungen").Range("C4")
    Worksheets("Kalender").Range("H20") = i
    Sheets(Array("Kalender")).PrintOut
Next
End Sub
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste