Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Summe eines variablen Bereichs in VBA

82 views
Skip to first unread message

Jan Rudolph

unread,
Feb 14, 2003, 4:38:51 AM2/14/03
to
Hallo

Ich möchte eine Lieferscheinzusammenstellung mit VBA
automatisieren. Die Mengen der verschiedenen Produkte
sollen am Ende summiert werden. Da die Anzahl der Produkte
immer unterschiedlich ist, kann ich keinen festen Bereich
für die Summenfunktion angeben. Ich habe schon viel
mit "FormulaR1C1" probiert, aber leider keine Lösung
gefunden.

Ich freue mich über Eure Hilfe

Danke Jan

Uwe Koehler

unread,
Feb 14, 2003, 5:56:26 AM2/14/03
to
On Fri, 14 Feb 2003 01:38:51 -0800, "Jan Rudolph"
<Lundener-...@web.de> wrote:

>Hallo
>
>Ich möchte eine Lieferscheinzusammenstellung mit VBA
>automatisieren. Die Mengen der verschiedenen Produkte
>sollen am Ende summiert werden. Da die Anzahl der Produkte
>immer unterschiedlich ist, kann ich keinen festen Bereich
>für die Summenfunktion angeben. Ich habe schon viel
>mit "FormulaR1C1" probiert, aber leider keine Lösung
>gefunden.

Hallo Jan,

wenn der Anfang Deines variablen Bereiches immer gleich ist, z.B. A1
bzw. Zeile 1 und nur das Ende variiert, schreibe folgendes:

Dim lastrow as long
lastrow = ActiveSheet.Range("A1").End(xlDown).Row

gesetzt den Fall daß zwischen A1 und der letzten zu summierenden Zeile
keine Leerzeilen liegen, liefert Dir das die letzte belegte Zeile (als
Zahl) dieses zusammenhängenden Bereiches

Dim last_address as String
last_address = ActiveSheet.Range("A1").End(xlDown).Address(0,0)

liefert nachselbem Schema die Adresse der letzten belegten Zelle im
Format SpalteZeile - also z.B. A35 (als Text)

falls Leerzeilen im zu summierenden Bereich vorhanden sind, gehe das
Ganze von unten (der letzten möglichen Zelle eines Blattes) an:

ActiveSheet.Range("A65536").End(xlUp).Address(0,0)

liefert die Adresse der letzten gefüllten Zelle in Spalte A

HTH

Uwe

Eberhard Funke

unread,
Feb 14, 2003, 6:59:12 AM2/14/03
to
On Fri, 14 Feb 2003 01:38:51 -0800, "Jan Rudolph"
<Lundener-...@web.de> wrote:

>Hallo
>
>Ich m=F6chte eine Lieferscheinzusammenstellung mit VBA=20
>automatisieren. Die Mengen der verschiedenen Produkte=20
>sollen am Ende summiert werden. Da die Anzahl der Produkte=20
>immer unterschiedlich ist, kann ich keinen festen Bereich=20
>f=FCr die Summenfunktion angeben. Ich habe schon viel=20
>mit "FormulaR1C1" probiert, aber leider keine L=F6sung=20
>gefunden.
>
>Ich freue mich =FCber Eure Hilfe
>
>Danke Jan

Hallo Jan,

ich schlage mich z. Z. mit demselben Problem herum.
Schau mal in den Thread Summenfunktion in VBA.
--
Als Newbie grüsst
Eberhard

Jan Rudolph

unread,
Feb 14, 2003, 8:44:50 AM2/14/03
to
>.
Hallo Uwe und Andere

Das hilft mir leider noch nicht so ganz weiter. Mein
Problem liegt in der Schreibweise für die Summenberechnung.
Ich habe geschrieben:
lastrow=ActiveSheet.Range("D9").End(xlDown).Row
Range("D11").formula="=SUM(D9:lastrow)"

Es wird daraufhin zwar eine Summenfunktion gestartet, aber
#Name? ausgegeben. Ich wäre für einen Vorschlag für die
Summenzeile sehr dankbar und hoffe, das ihr noch nicht im
Wochenende seid.

Gruss Jan

Frank Arendt-Theilen

unread,
Feb 15, 2003, 4:44:07 PM2/15/03
to
Hallo Jan,
in deinem Makro ermittelst du per Variable einen Wert, der in der
Formel eingesetzt werden soll, daher wie folgt:

Activesheet.Range("D11").Formula="=SUM(D9:D" & lastrow & ")"

MfG Frank
_________________________________________________
Frank Arendt-Theilen, Microsoft MVP für Excel, Hameln
eMail: Thei...@t-online.de, Homepage: http://www.xl-faq.de

0 new messages