Summenbildung bei wechselnder Spalte!?
16.09.2004 16:49:02
Melanie
Ich möchte eine Artikeldatei wöchentlich fortschreiben mit Beständen und Werten. Das habe ich auch schon soweit auf den Weg gebracht, nun kommen die letzten Verschönerungen. Und zwar möchte ich in der 3.-letzten Spalte der Tabelle in der ersten Reihe eine Summe der Werte bilden. Aber das muss halt variable gestaltet werden, weil die Spalte halt nächste Woche schon wieder 2 Spalten weitergerückt ist.
Ich bin mir sicher, ich verzweifle, wenn ich die Lösung von Euch sehe, weil ich weiß, dass sie einfach ist, aber ich komme nicht drauf.
Hier kommt das, was ich schon habe:
Sub Topteile()
'nach Speichern der Gesamtbestandsdatei
Workbooks.Open ("D:\topteile.xls")
Dim icolL As Integer
Dim irowL As Integer, irow As Integer
Dim wkbGesamtbestand As Workbook
Workbooks("topteile.xls").Worksheets("Tabelle2").Activate
Set wkbGesamtbestand = Workbooks("Gesamtbestand.xls")
'Zeilenzähler
irowL = Cells(Rows.Count, 1).End(xlUp).Row
'Spaltenzähler
icolL = ActiveSheet.UsedRange.Columns.Count
'2 Spalten einfügen vor vorletzter Spalte
Columns(icolL - 1).Select
Selection.Insert shift:=xlToRight
Selection.Insert shift:=xlToRight
Cells(2, icolL - 1) = "Bestand KW " & Format(Now - 8, "ww")
Cells(2, icolL) = "Wert KW " & Format(Now - 8, "ww")
Cells(2, icolL + 1) = "Differenz in EUR"
Cells(2, icolL + 2) = "Veränderung in %"
'in der vorletzten Spalte werden die Werte der beiden davor
'liegenden Spalten subtrahiert, in der letzten %uale Abweichung errechnet
For irow = 3 To irowL
On Error Resume Next
Cells(irow, icolL - 1) = Application.WorksheetFunction.VLookup(Cells(irow, 1), wkbGesamtbestand.Worksheets("Gesamtbestand").Range("A1:Q30000"), 16, False)
Cells(irow, icolL) = Application.WorksheetFunction.VLookup(Cells(irow, 1), wkbGesamtbestand.Worksheets("Gesamtbestand").Range("A1:Q30000"), 17, False)
Cells(irow, icolL + 1).FormulaR1C1 = "=RC[-2]-RC[-4]"
Cells(irow, icolL + 2).FormulaR1C1 = "=RC[-2]/RC[-4]"
Next irow
Columns("A:DD").AutoFit
'Summenzelle über icolL
cells(1, icolL) = Application.WorksheetFunction.Sum(Range ?????????????????
'Tausenderpunkt in allen Zellen
'icolL -1 und icolL + 1 nur ganze Zahlen
'icolL und icolL + 2 nur 2 Nachkommastellen
End Sub
Das sind so die letzten Klimmzüge, die ich noch machen muss - wäre prima, wenn ihr helfen könntet.
Lieben Gruß,
Melanie