Hi zusammen,
ich ziehe mir jeden Monat eine Liste aus unserer Datenbank.
Hier ein Auszug der Liste. Im Original ist sie bedeutend länger.
In Spalte D steht immer die store_id (insg. ca 90 werden aber zukünftig mehr). Excel soll jetzt für jede store_id ein eigenes Tabellenblatt anlegen und die Liste genau wie in der ursprungsform (also mit den gleichen Spalten) aber jeweils nur die Zeilen mit der entsprechenden store_id auf diese Tabellenblätter verteilen. Idealerweise in aufsteigender Reihenfolge, 1-2-3 usw. Ist aber nicht sooo wichtig falls das zu kompliziert ist.
Anschließend soll für jedes der Tabellenblätter folgender Code ausgeführt werden, der jedes Tabellenblatt formatiert.
Sub GAForm()
Rows(1).ClearContents
With Cells(3, 2).CurrentRegion
With .Offset(-1, 0).Resize(.Rows.Count + 2)
.Cells(1, 1).Value = 1
.Cells(1, 1).Copy
.SpecialCells(xlCellTypeConstants, 2).PasteSpecial xlPasteValues, operation:=xlMultiply
.Rows(1).Value = Array("Datum", "Code", "Wert")
.Columns(1).NumberFormat = "DD.MM.YYYY hh:mm"
.Cells(.Rows.Count, 1).Value = "Summe"
.Cells(.Rows.Count, 3).FormulaR1C1 = "=Sum(R[-" & .Rows.Count - 2 & "]C:R[-1]C)"
.BorderAround Weight:=xlThin
.Borders(xlInsideHorizontal).Weight = xlThin
.Borders(xlInsideVertical).Weight = xlThin
.Rows(1).Font.Bold = True
.Rows(.Rows.Count).Font.Bold = True
.Cut Destination:=Cells(5, 1)
Columns("A:A").EntireColumn.AutoFit
ActiveWindow.DisplayGridlines = False
Columns("B:B").EntireColumn.AutoFit
Range("C6").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.NumberFormat = "#,##0.00 $"
Rows("4:4").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End With
End With
End Sub
Kann mir da jemand helfen? Wäre genial!
BG
Henrik
|