Wenn es in der Tabelle stets dieselbe Anzahl Zeilen geben würde, wäre das
easy. Wie aber, wenn die Anzahl der Zeilen eben von Mal zu Mal wechselt?
Danke schon mal.
--
Wolfgang Armbruster
"Wolfgang Armbruster" schrieb:
> Ich möchte eine Tabelle in Excel 2007 mit einem Makro bearbeiten. Dabei
> soll in einer bestimmten Spalte der Cursor zunächst ans Ende der Tabelle
> bewegt werden. In der nächstunteren Zelle soll danach eine Summenformel
> eingefügt werden, die die Werte der darüberliegenden Zellen aufsummiert.
versuchs mal so:
Dim lngLastRow As Long
lngLastRow = Range("A1").End(xlDown).Row
Cells(lngLastRow + 1, "A").Formula = "=Sum(A1:A" & lngLastRow & ")"
Mit freundlichen Grüssen
Melanie Breden
--
- Microsoft MVP für Excel -
> Hallo Wolfgang,
>
> "Wolfgang Armbruster" schrieb:
>
>> Ich möchte eine Tabelle in Excel 2007 mit einem Makro bearbeiten. Dabei
>> soll in einer bestimmten Spalte der Cursor zunächst ans Ende der Tabelle
>> bewegt werden. In der nächstunteren Zelle soll danach eine Summenformel
>> eingefügt werden, die die Werte der darüberliegenden Zellen aufsummiert.
>
> versuchs mal so:
>
werde ich tun. Vielen Dank!
--
Wolfgang Armbruster
On 5 Sep., 11:50, Wolfgang Armbruster <40tude-e.
20.wolff...@spamgourmet.com> wrote:
> Ich möchte eine Tabelle in Excel 2007 mit einem Makro bearbeiten. Dabei
> soll in einer bestimmten Spalte der Cursor zunächst ans Ende der Tabelle
> bewegt werden. In der nächstunteren Zelle soll danach eine Summenformel
> eingefügt werden, die die Werte der darüberliegenden Zellen aufsummiert.
>
> Wenn es in der Tabelle stets dieselbe Anzahl Zeilen geben würde, wäre das
> easy. Wie aber, wenn die Anzahl der Zeilen eben von Mal zu Mal wechselt?
Die folgenden zeilen gehen davon aus, dass der Cursor in der
betreffenden Spalte stetht und diese nicht leer ist:
Sub AutoSumme()
Dim lngCol As Long
Dim lngRow As Long
lngCol = ActiveCell.Column
lngRow = Cells(Rows.Count, ActiveCell.Column).End(xlUp).Row
Cells(lngRow + 1, lngCol).FormulaR1C1 = "=SUM(R[-" & lngRow &
"]C:R[-1]C)"
End Sub
--
Mit freundlichen Grüssen
Thomas Ramel
- MVP für MS-Excel -
Der folgende Code funktioniert auch, wenn die Spalte eine/mehrere
leere Zellen enthält. Außerdem wird auch der Cursor bewegt. Das "A"
musst Du natürlich überall (2x) durch Deine Spalte ersetzen.
Sub bewegen_und_summieren()
Cells(Rows.Count, "A").End(xlUp).Select
Selection(2).Formula = "=SUM(A1:" & Selection.Address(0,0) & ")"
End Sub
Peter
Wenn Deine Tabelle flexibel sein soll, könntest Du die Spaltensummen
vielleicht besser in einer Titelzeile zeigen:
In A1:
=SUMME(A2:A65536)
Das von Dir formulierte Problem würde ich lieber nicht lösen, sondern
gern vermeiden.
Denn eine Makrolösung sollte, wenn ich die Aufgabenstellung richtig
verstanden habe, bei einem Mehrfachlauf auch erkennen, ob am
Spaltenende bereits eine Summenformel existiert, und in diesem Fall
keine weitere erzeugen.
Viele Grüße,
Bernd
Das stimmt.
Zumindest sollte man vorher prüfen, ob sich schon eine Summe am Ende
befindet:
Cells(Rows.Count, "A").End(xlUp).Select
If Left(Selection.Formula,5)="=SUM(" Then Selection(0).Select
Selection(2).Formula="=SUM(A1:" & Selection.Address(0,0) & ")"
Peter
> Zumindest sollte man vorher prüfen, ob sich schon eine Summe am Ende
> befindet:
>
> Cells(Rows.Count, "A").End(xlUp).Select
> If Left(Selection.Formula,5)="=SUM(" Then Selection(0).Select
> Selection(2).Formula="=SUM(A1:" & Selection.Address(0,0) & ")"
Es tut mir leid, aber dies erscheint mir alles als Stückwerk.
Was, wenn die Spalte eine Summenspalte von Daten aus anderen
Tabellenblättern ist?
Natürlich könnte man versuchen zu ermitteln, ob genau die richtige
Summenformel bereits in der letzten Zeile vorhanden ist, aber dann
gibt der Anwender ein zusätzliches Leerzeichen zwischen "=" und
"SUMME" ein und das Makro läuft erneut ins Leere...
Angenommen man näme sich auch dieser Sache an und vergleicht die
Formel nach Eliminierung von Leerzeichen, aber nun vergisst der
Anwender einfach, das Makro laufen zu lassen...
Die Tabelle kann mit der gegebenen Konstruktion eben nicht (jedenfalls
nicht ohne erheblichen Aufwand) sicherstellen, dass die Summenformel
jederzeit am Ende der Spalte steht.
IMHO tut man sich manche Dinge gar nicht erst an.
Viele Grüße,
Bernd