Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
484to488
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
484to488
484to488
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Summenbildung bei wechselnder Spalte!?

Summenbildung bei wechselnder Spalte!?
16.09.2004 16:49:02
Melanie
Hallo zusammen!
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

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Summenbildung bei wechselnder Spalte!?
16.09.2004 17:12:52
Reinhard
Hi Melanie,
lade doch mal kleine Beispieldatei hoch.
..."möchte ich in der 3.-letzten Spalte der Tabelle in der ersten Reihe eine Summe der Werte bilden"...
verstehe ich nicht.
Mit

Sub tt()
MsgBox WorksheetFunction.Sum(Range(Cells(1, 1), Cells(1, Cells(1, 256).End(xlToLeft).Column)))
End Sub

krieg ich die Summe der ersten Reihe,wobei

Sub tt()
MsgBox WorksheetFunction.Sum(Range("A1:A256")
End Sub

sicher auch ging.
Gruß
Reinhard
AW: Summenbildung bei wechselnder Spalte!?
16.09.2004 18:09:41
Melanie
Hallo noch mal!
Also, hier

Die Datei https://www.herber.de/bbs/user/10980.xls wurde aus Datenschutzgründen gelöscht

ist die Beispieldatei. Ich möchte vor den Berechnungsspalten in jeder neuen KW die Bestände und Werte eintragen und über der Wertspalte eine Gesamtsumme in Reihe 1. Aber weil sich diese Spalte mit jeder neuen KW um zwei Spalten nach rechts verschiebt kann ich keine festen Zellbezüge nehmen. Ich muss das irgendwie variabel halten und weiß nicht wie ich das machen soll.
Ist das jetzt verständlicher geworden? Ich hoffe!
Lieben Gruß,
Melanie
Anzeige
AW: Summenbildung bei wechselnder Spalte!?
16.09.2004 20:31:44
Melanie
Hallo Reinhard!
Ist das richtig: Du hast die Formel "zu Fuß" eingetragen!? Leider habe ich Dir den VBA-Code in der Datei nicht mit hochgeladen, weil er bei mir in der Personl.xls ist ( habe ich vergessen, aber ich hatte ihn ja auch schon komplett gepostet). Ich suche eine VBA-Lösung, bei der ich diese Zelle, die sich in der Position jede Woche verschiebt, direkt ansprechen kann. Bei Deiner Lösung muss ich dann leider wieder von Hand kopieren.
Hast Du noch eine weitere Idee?
Lieben Gruß,
Melanie
Anzeige
AW: Summenbildung bei wechselnder Spalte!?
16.09.2004 21:29:58
Reinhard
Hi Melanie,
bei dem ersten Material nimmt der Bestand von KW36 zu KW37 um 633 zu. Warum ist denn dann Die "Differenz wert" negativ?
probiers mal so:

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(Cells(3, icolL), Cells(Cells(65536, icolL).End(xlUp).Row), icolL))
'Tausenderpunkt in allen Zellen
'icolL -1 und icolL + 1 nur ganze Zahlen
'icolL und icolL + 2 nur 2 Nachkommastellen
End Sub

Gruß
Reinhard
Anzeige
AW: Summenbildung bei wechselnder Spalte!?
16.09.2004 21:43:10
Melanie
Hallo Reinhard!
Das mit der "falschen Logik" liegt daran, dass ich einfach irgendwelche Werte getippt habe ohne "Sinn und Verstand"...
Leider klappts immer noch nicht, aber es kann nur noch ein minimaler Schritt sein!
für die Zeile:
Cells(1, icolL) = Application.WorksheetFunction.Sum(Range(Cells(3, icolL), Cells(Cells(65536, icolL).End(xlUp).Row), icolL)
lautet die Fehlermeldung:
Falsche Anzahl an Argumenten bzw. falsche Eigenschaftszuweisung. Dabei ist RANGE blau markiert. Kannst Du mir bei diesem letzten Schritt auch noch helfen? Wahrscheinlich fehlt nur eine Klammer, aber ich weiß nicht wo.
Gruß,
Melanie
Anzeige
AW: Summenbildung bei wechselnder Spalte!?
16.09.2004 21:47:51
andre
Hallöchen,
die vorletzte Klammer dürfte auch ans Ende gehören,
AW: Summenbildung bei wechselnder Spalte!?
16.09.2004 22:00:36
Melanie
Hallo ihr beiden!
Ich bin ja untröstlich und frage mich auch mittlerweile was mehr Aufwand macht: der Code oder drei einfache Klicks mit der Maus wenn ich von Hand kopiere... *heul*
ABER: auch mit doppelter Klammer hinten klappt´s nicht. Habe auch schon versucht, das Komma durch einen Punkt zu ersetzen. Dann meckert er zwar nichts mehr an, aber er rechnet auch nicht. :-(
Gruß,
Melanie (mit dem schlechten Gewissen, dass sie so was nicht selber hinkriegt)
AW: Summenbildung bei wechselnder Spalte!?
16.09.2004 22:07:10
andre
Hallöchen,
hab mich glaube auch verzählt, nimm mal noch eine dritte hinten dran
Anzeige
AW: Summenbildung bei wechselnder Spalte!?
16.09.2004 22:10:50
Melanie
Hallo Andre!
Sieht auch nicht gut aus:
Fehler beim Kompilieren
Erwartet: Anweisungsende
Gruß,
Melanie
AW: Summenbildung bei wechselnder Spalte!?
16.09.2004 22:19:59
andre
Hallöchen,
also das ist die "Grundform" und die geht,
a = WorksheetFunction.Sum(Range("A1:C1"))
und hier stimmen die Klammern, 6x auf und 6x zu, die Stellung ist auch ok,
b = WorksheetFunction.Sum(Range(Cells(3, icolL), _
Cells(Cells(65536, icolL).End(xlUp).Row, icolL)))
Wie ist den der Wert von Deinem icolL?
Es klappt!
16.09.2004 22:27:45
Melanie
Hallo André!
Reinhard hat mir noch mal die selbe Formel geschickt wie Du nun.
Ich hatte fälschlicherweise hinter dem .Row noch eine Klammer....
Jetzt ist alles gut und meine kleine Seele hat Ruhe. Vielen Dank an Euch beide, dass ihr mir bis zum "Letzten" geholfen habt. Echt Spitze!!!
Lieben Gruß,
Melanie
Anzeige
Sorry
16.09.2004 22:14:49
Reinhard
Hi Melanie,
nimm mal:
Cells(1, icolL) = Application.WorksheetFunction.Sum(Range(Cells(3, icolL), Cells(Cells(65536, icolL).End(xlUp).Row, icolL)))
Gruß
Reinhard
YESSSSS!!!!!! :-))))))
16.09.2004 22:19:13
Melanie
Jaaaaaaaaa! Ihr habt´s geschafft! Es klappt!
Vielen, vielen Dank!
Lieben Gruß,
Melanie

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige