Ich mache grade einen macro für den Knopf und wenn man diesen betätigt, dann
Sollte für jeden Monat des vergangenen Jahres ein neues Blatt ans Ende der Tabelle hinzugefügt und nach dem jeweiligen Monat benannt werden. Anschliessend sollten alle Spalten aus Worksheet "excel" die in Spalte "I" als Datum letzes Jahr und den jeweiligen Monat haben in den entsprechenden Monats worksheet kopiert werden. Z.B. Wenn in der Tabelle "excel" einträge mit Datum vom 05.01.03-29.01.03sind, sollten diese in extra dafür angelegtes Worksheet ("Januar") kopiert werden. Ich habe selber schon vorliegendes geschrieben
[code]
Dim wksE As Excel.Worksheet
Dim i As Long
Dim a As Long
Dim dtJahr As Integer
Dim dtMonat As Long
Dim r As Byte
Dim c As Byte
Application.ScreenUpdating = False
Set wksE = ThisWorkbook.Worksheets("excel")
dtJahr = Format(Now, "yyyy") - 1
dtMonat = 0
For a = 1 To 12
dtMonat = dtMonat + 1
Select Case dtMonat
Case "1"
Worksheets.Add After:=Worksheets(Worksheets.Count)
ThisWorkbook.ActiveSheet.Name = "Januar"
Case "2"
Worksheets.Add After:=Worksheets(Worksheets.Count)
ThisWorkbook.ActiveSheet.Name = "Februar"
Case "3"
Worksheets.Add After:=Worksheets(Worksheets.Count)
ThisWorkbook.ActiveSheet.Name = "März"
Case "4"
Worksheets.Add After:=Worksheets(Worksheets.Count)
ThisWorkbook.ActiveSheet.Name = "April"
Case "5"
Worksheets.Add After:=Worksheets(Worksheets.Count)
ThisWorkbook.ActiveSheet.Name = "Mai"
Case "6"
Worksheets.Add After:=Worksheets(Worksheets.Count)
ThisWorkbook.ActiveSheet.Name = "Juni"
Case "7"
Worksheets.Add After:=Worksheets(Worksheets.Count)
ThisWorkbook.ActiveSheet.Name = "Juli"
Case "8"
Worksheets.Add After:=Worksheets(Worksheets.Count)
ThisWorkbook.ActiveSheet.Name = "August"
Case "9"
Worksheets.Add After:=Worksheets(Worksheets.Count)
ThisWorkbook.ActiveSheet.Name = "September"
Case "10"
Worksheets.Add After:=Worksheets(Worksheets.Count)
ThisWorkbook.ActiveSheet.Name = "Oktober"
Case "11"
Worksheets.Add After:=Worksheets(Worksheets.Count)
ThisWorkbook.ActiveSheet.Name = "November"
Case "12"
Worksheets.Add After:=Worksheets(Worksheets.Count)
ThisWorkbook.ActiveSheet.Name = "Dezember"
End Select
With wksE
For i = .Cells(Rows.Count, 9).End(xlUp).Row To 2 Step -1
If Month(.Cells(i, 9)) dtMonat Or Year(wksE.Cells(i, 9)) dtJahr Then
'.Rows(i).Delete
r = Worksheets("Januar").UsedRange.Row
Worksheets("excel").UsedRange.Copy Destination:=Worksheets("Januar").Cells(r, 9)
End If
Next i
End With
Set wksE = Nothing
Next a
Application.ScreenUpdating = True
[/code]
Weiss noch nicht ob alles stimmt. Diese Selct Case Schleife hatte ich nie probiert. Ich weiss nicht wie ich das mit kopieren sollte das immer die Zeile von excel zum aktuellen Monatssheet kopiert werden. Sollte ich da einen Array machen und zu diesem alle Monate hinzufügen und dann wenn dieser z.B. AMonat heisst:
r = Worksheets("AMonat.Value(a)").UsedRange.Row
Worksheets("excel").UsedRange.Copy Destination:=Worksheets("AMonat.Value(a)").").Cells(r, 9)
Oder wie würde ihr das machen? Seht ihr ansonsten noch irgendwelche Fehler?