Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Blätter kopieren, Monatswechsel beachten.
#1
Hallo ihr wissenden,

alle Jahre wieder bastel ich an meinen Stundenzetteln.

Dieses Jahr habe ich es eigendlich fast kpl. geschafft alles nach meinen Wünschen zu ändern.

Ein Punkt ist aber noch offen.

Ich bekam im letzen Jahr ein Macro welches mir den 1. Wochenzettel kopiert.

Zitat:Sub NewTablesByName()
 Dim i As Integer
 For i = 2 To 52
   Sheets("KW1").Copy after:=Sheets(Sheets.Count)
   Sheets(Sheets.Count).Name = "KW" & i
   ActiveSheet.Range("E2").Value = "KW" & i
 
 Next i
End Sub


Wenn ein Monatswechsel in der Woche stattgefunden hat habe ich einfach ein Blatt eingefügt und entsprechend umbenannt.

Alle Blattübergreifenden Formeln wurden dann von Hand geändert.

Dieses Jahr gibt es nichts Blattübergreifendes.

Was muss gemacht werden damit beim Kopieren die letzte Woche des Monats(hier der Wechsel Jan/ Feb.) mit z.B  KW5.1  und die erste im Febuar KW5.2  beim Kopieren erstellt wird.

Viele Grüße

Didi
Antworten Top
#2
Hallöchen,

um mal bei Deinem Strickmuster zu bleiben könnte es so funktionieren (ungetestet):

Code:
Sub NewTablesByName()
Dim i As Integer, dMonday As Date
For i = 2 To 52
  Sheets("KW1").Copy after:=Sheets(Sheets.Count)
  'Montag der KW ermitteln
  dMonday = DateSerial(2017, 1, 4) + i * 7 - 7 - (DateSerial(2017, 1, 2) Mod 7)
  ' wenn der Montag und der Sonntag (Montag + 6) den geleichen Monat haben, dann
  If Month(dMonday) = Month(dMonday + 6) Then
    Sheets(Sheets.Count).Name = "KW" & i
    ActiveSheet.Range("E2").Value = "KW" & i
  'Oder wenn es ein anderer Monat ist, zwei Blaetter erzeugen
  Else
    Sheets(Sheets.Count).Name = "KW" & i & ".1"
    ActiveSheet.Range("E2").Value = "KW" & i
    Sheets("KW1").Copy after:=Sheets(Sheets.Count)
    Sheets(Sheets.Count).Name = "KW" & i & ".2"
    ActiveSheet.Range("E2").Value = "KW" & i
  'Ende  wenn der Montag und der Sonntag (Montag + 6) den geleichen Monat haben, dann
  End If
Next i
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
Vielen Dank für die Arbeit.

Es hat auf anhieb funktioniert.

Didi
Antworten Top


Gehe zu:


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