Wachbuch, 6 Seiten-31 Tage
#1
Ich hätte nicht gedacht, dass das so ein Problem ist. Ich habe 6 Seiten in einer Tabelle und dachte das ich diese Seiten 31 mal dupliziere (mit Tabellenhöhe und Spaltenbreite) das Datum auf Seite 1 des jeweiligen 6 Seiten-Satzes fortlaufend für den entsprechenden Monat und fertig.....Normalerweise löst man es, zur Not mit Google oder You Tube aber an diesem Problem verzweifel ich. Vielleicht hat ja ein Crack eine Lösung, würde mich freuen.
Top
#2
Hallöchen,

warum nicht? Die 6 Blätter markieren und kopieren, 30 mal wiederholen, geht.
Oder die Datei 31x unter verschiedenen Namen speichern, falls DU das so willst.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#3
Ja das hatte ich mir auch so vorgestellt...dabei geht aber die Formatierung flöten und muss aufwendig von Hand für jedes Blatt neu eingestellt werden. Wenn man auf Tabelle 
-verschieben einfügen- geht kann man zwar eine Kopie erstellen diese aber nur als weitere Tabelle unten im Reiter einfügen...ich will aber die 6 Blatt 31 mal in einer Tabelle haben. Mit diesem Fundstück wurde es oft kopiert aber auch immer als einzelne TAbelle....also kann man es mit formatiertung kopieren confuse....
Option Explicit 
Public Sub Main() 
    Dim intDays As Integer 
    Dim stCalc As Integer 
    Dim datDate As Date 
    On Error GoTo Fin 
    With Application 
        .ScreenUpdating = False 
        .AskToUpdateLinks = False 
        .EnableEvents = False 
        stCalc = .Calculation 
        .Calculation = xlCalculationManual 
        .DisplayAlerts = False 
    End With 
    With ThisWorkbook 
        For intDays = 2 To IIf(Day(DateSerial(Year(.Worksheets _ 
            (.Worksheets.Count).Range("A1").Value), 2 + 1, 0)) = 29, 366, 365) 
            datDate = .Worksheets(.Worksheets.Count).Range("A1").Value 
            .Worksheets(1).Copy After:=.Worksheets(.Worksheets.Count) 
            .Worksheets(.Worksheets.Count).Name = _ 
                DateSerial(Year(datDate), Month(datDate), Day(datDate) + 1) 
            .Worksheets(.Worksheets.Count).Range("A1").Value = _ 
                .Worksheets(.Worksheets.Count).Name 
        Next intDays 
    End With 
Fin: 
    With Application 
        .Goto (ThisWorkbook.Worksheets(1).Range("A1")), True 
        .ScreenUpdating = True 
        .AskToUpdateLinks = True 
        .EnableEvents = True 
        .Calculation = stCalc 
        .DisplayAlerts = True 
    End With 
    If Err.Number <> 0 Then MsgBox "Error: " & _ 
        Err.Number & " " & Err.Description 
End Sub
Top
#4
Zitat:Ich hätte nicht gedacht, dass das so ein Problem ist.

Ich auch nicht. Wer hätte gedacht, dass es so ein Problem ist, dass man - auch wenn man ein Forumsneuling ist - erstmal mit einem höflichen "Hallo" und einem kurzen Einstieg beginnt. Vielleicht dann auch noch von einem "bitte" und am Ende gar einem "danke" gefolgt.
Stattdessen schreibst du eine allgemeine, nichtssagende Beschreibung hin und erhoffst, dass hier eine Lösung aus dem Hut gezaubert wird.
Lade eine Beispielmappe hoch, dann wird es auch was werden mit der Lösung.
Schöne Grüße
Berni
Top
#5
@MisterBurns Sie haben Recht, Entschuldigung ich war gestern etwas genervt und es war spät. Ja Hallo, ich bin neu hier und eigentlich PC Affin aber in Bezug auf Office zwar kein Anfänger aber auch nur User. Ich bin Mitte 50 was aber kein Grund ist. In der Regel findet ich für meine Zwecke die Lösung, wie gesagt bei You tube oder Google oder durch Probieren. Ich will für meine "Verwaltungsaufgaben" einfache Lösungen. Ich werde mal versuchen die Mappe hier reinzustellen. Mit Word oder Power Point gibt es solche Probleme auch nicht. Ich habe mir die Datei als E-Mail nach Hause geschickt und war schon verwundert das Excel die Zeilenhöhe einfach mal so geändert hat, so das der Inhalt und damit die Überschriften nicht mehr stimmten. Dann besteht die Tabelle aus 6 Seiten die für einen Tag bestimmt sind. Ziel ist es diese 6 Seiten 31 Mal auszudrucken, für jeden Wochentag des Monats, und als Dokument binden zu lassen. Mein Ansinnen war jetzt, diese 6 Seiten fortlaufend in einer Tabelle, 31 mal hintereinander zu kopieren damit man dann das Datum auf Seite 1 fortlaufend auf jeder 6ten Seite anpassen (durch Excel) kann. Meine Versuche und Recherche ergab aber, dass das Kopieren schon ein Problem ist, da Excel mit Bordmitteln die Zeilenhöhe und Spaltenbreite nicht mitkopiert. Kutools soll eine Lösung sein, aber ich kann auf dem Dienstrechner keine Programme aufspielen. Vielleicht sollte ich lieber ein Worddokument erstellen?! Ich wollte doch nur schnell! die Excel Tabelle aufhübschen. Die Tabelle die ich oben gefunden habe kopiert immerhin die 6 Blätter schon mal mit Formatierung, aber nicht in eine Tabelle, sondern in 31 nebeneinander stehenden Tabellen?! Ich BITTE  Blushsmiley  um Lösungsmöglichkeiten und bedanke mich für diese schon mal auf dem Vorwege.
PS: ich sitze am WE nicht den ganzen Tag am PC, antworte aber bestimmt, nicht das einer denkt, "jetzt antwortet der I...nicht mal".


Angehängte Dateien
.xlsx   Kopie von Wachbuch.xlsx (Größe: 22,09 KB / Downloads: 22)
Top
#6
Hi
 
Es geht dir also eigentlich nur um den Druck der Vorlage?
 
Der Code sollte deine 6 seitige Vorlage vom Startdatum(Eingabe Inputbox) bis zum Monatsende drucken. Mit Datum in L1 für den jeweiligen Tag.
 
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim StDatum As Date, Monatsende As Date, i As Long

On Error GoTo Fehler
StDatum = InputBox("Start Datum eingeben!   TT.MM.JJJJ")
Monatsende = DateSerial(Year(StDatum), Month(StDatum) + 1, 0)

For i = 0 To Monatsende - StDatum
    Range("L1").Value = Format(StDatum + i, "DDDD,   DD.MM.YYYY")
    PrintOut
Next i

Exit Sub
Fehler:
MsgBox "Kein gültiges Datum"
End Sub

 Gruß Elex
[-] Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:
  • elagabalu
Top
#7
Hallöchen,

Zitat:Wenn man auf Tabelle -verschieben einfügen- geht kann man zwar eine Kopie erstellen diese aber nur als weitere Tabelle unten im Reiter einfügen...i

"Nur" stimmt nicht. Man kann auch zusätzlich oben die neue Arbeitsmappe auswählen …
Eventuelle Formatänderungen können z.B. vorkommen, wenn man die Datei auf PC A erstellt hat und auf PC B bearbeitet, wo vielleicht ein anderes Farbschema Standard ist. Schlimmstenfalls macht man's sogar noch mit einer anderen Excelversion.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • elagabalu
Top
#8
Also erstmal vielen, vielen Dank euch beiden, besonders @Elex. Man kann nicht alles können, mein Focus liegt auf anderen Sachen, der Tag hat auch nur 24h aber ich bin schon ein bisschen Neidisch, wo eignet man sich dieses doch ziemlich abstrakte Fachchinesisch an? Chapeau! 
Ich muss mich erstmal outen...auf meinem Laptop (bin Dienstlich weg) hab ich erstmal die Entwickleroptionen eingschaltet dann VBA Projekt gestartet, Tabelle 1 dieses Wachbuch ausgewählt dann in dem Fenster deinen Code eingefügt dann auf der 1ten Seite des Wachbuchs Doppelklick auf L1, es ging eine Fenster auf, das Datum 01.07.2019 eingetragen und es rasselten die Wochentage durch mit der Meldung Drucken nicht möglich...war ja auch kein Drucker angeschlossen. Zauberei?! Wie geil ist das denn...ABER Ich werde das nächste Woche mal ausprobieren,... mit Drucker. 
Du hattest es richtig verstanden ES soll nur ausgedruckt werden, man hätte ja auch, beim drucken, Datei 31 *ausdrucken, ankreuzen können, ich wollte allerdings als Goldrandlösung das Datum und unten die Seitenzahlen mit drin haben (gesamt und Seite von 6 Seiten). 
ABER nicht ich drucke die Datei aus, sondern die Datei wird per E-Mail (LONO) an die Druckerei geschickt, ich überlege..., dann müsste der Mensch das Datum setzen?! 
Mein plan war eigentlich "handwerklicher" wie in Word, wenn man einen Fachaufsatz schreibt, sieht man alle Seiten, auch wenn die sich wie in diesem Fall alle 6 Seiten wiederholen, kann die Seitenzahlen und das Datum über die Kopf,-Fußzeile konfigurieren usw. und würde dann die 180 S. , 186 S. (ohne Februar) an die Druckerei schicken.
     Wenn man beim Drucken als PDF auswählt und speichert müsste er die 180 S. doch als Datei erzeugen dann könnte man die Datei speichern und verschicken ...muss ich ausprobieren, aber Seitenzahlmäßig könnte ich da nichts mehr einstellen....deswegen wär es doch schön wenn ich die 180 S. "sehen" könnte. 
@ Elex machst du das Beruflich? wo lernt man so schöne VBA zu schreiben? anyway vielen Dank auch falls es noch die Möglichkeit gibt das ich die 180 S. zum durchscrollen kriegen sollte. Ich werde auch noch mal versuchen die Datei in Word zu kopieren. 
Schönes WE
Top
#9
Hi
 
Zitat:Man kann nicht alles können, mein Focus liegt auf anderen Sachen, der Tag hat auch nur 24h aber ich bin schon ein bisschen Neidisch, wo eignet man sich dieses doch ziemlich abstrakte Fachchinesisch an? 
Machst du das Beruflich?
Wo lernt man so schöne VBA zu schreiben?

Irgendwann hatte mein 24h Tag auf einmal paar Stunden übrig, und so landete mein Focus eben auf einmal bei diesem VBA-Zeugs (Einsteigerbuch und dann langsam weiter). Beruflich ganz andere Ecke.
Neidisch ist man doch in unserem Alter nicht mehr. Ist doch das Leben. Da eine dies und der andere das.
 
Zitat:Datei wird per E-Mail (LONO) an die Druckerei geschickt
Hast du dort schon einmal gefragt wie die es benötigen. Ich hatte mal ein Programmheft 16 Seiten. Die wollten dass ich jede Seite als extra PDF Datei schicke, mit Seitenzahl im Dateinamen. Wäre für die am einfachsten in ihr Druck-Programm zu überführen.
 
Währe in deinem Fall.
31 Dateien für die Seite mit Datum (je nach Monat)  
Seite 1.1.pdf  mit Datum (01.02.2019)
Seite 2.1.pdf  mit Datum (02.02.2019)
Usw.
5 Dateien für die Seiten 2 – 6   
Seite xx.2.pdf
Seite xx.3.pdf

Seite xx.6.pdf
 
Der Code erstellt dir die Dateien in einem bestehenden Ordner.
Bei meinen Beispiel     "C:\Users\Nutzer\Desktop\Druck Wachbuch\"
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim StDatum As Date, Monatsende As Date, i As Long, PfadGesamt As String, PfadOrdner As String

Cancel = True
On Error GoTo Fehler

StDatum = InputBox("Start Datum eingeben!   TT.MM.JJJJ")
Monatsende = DateSerial(Year(StDatum), Month(StDatum) + 1, 0)

'Ordner in dem die pdf gespeichert werden soll
PfadOrdner = "C:\Users\Nutzer\Desktop\Druck Wachbuch\"

'pdf Datein erstellen aus Seite 1 mit Datum x mal
For i = 0 To Monatsende - StDatum
    Range("L1").Value = Format(StDatum + i, "DDDD,   DD.MM.YYYY")
    PfadGesamt = PfadOrdner & "Seite " & i + 1 & ".1.pdf"

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    PfadGesamt, Quality:=xlQualityStandard _
    , IncludeDocProperties:=True, IgnorePrintAreas:=False, From:=1, To:=1, _
      OpenAfterPublish:=False
Next i

'pdf Datein Seite 2 - 6
For i = 2 To 6
    PfadGesamt = PfadOrdner & "Seite XX. " & i & ".pdf"

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    PfadGesamt, Quality:=xlQualityStandard _
    , IncludeDocProperties:=True, IgnorePrintAreas:=False, From:=i, To:=i, _
      OpenAfterPublish:=False
Next i

Exit Sub
Fehler:
MsgBox "Kein gültiges Datum"
End Sub

Gruß Elex
Top
#10
Nochmals vielen Dank. Ich werde mal versuchen mich da einzulesen, schon interessant. Das mit der Druckerei muss ich klären. Der, der das eigentlich machen soll, hat seine krude Excel Datei da hingeschickt und die haben stumpf 300!! Seiten gedruckt war halt viel Mist bei. Deswegen habe ich überhaupt mit dem Projekt angefangen, schnell mal :20:  :17: . Werde das in Ruhe ausprobieren und mich die nächsten Tage melden; bin gerade Beifahrer. 
Thx, have fun.
Top


Gehe zu:


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