Discussion:
Summe mehrerer Zeilen bilden per VBA
(zu alt für eine Antwort)
Susanne Junkel
2003-08-08 09:33:12 UTC
Permalink
Hallo NG,

bin was Excel betrifft, blutiger Anfänger in VBA. Arbeite sonst nur mit
Access VBA.
Nun muss ich aus Access Abfrageergebnisse nach Excel übergeben, die
unterschiedlich viele Zeilen haben können. Trotzdem soll in Excel in
der ersten freien Zeile in einer bestimmten Spalte (z.B. "D") die Summe
der darüberliegenden Zeilen gebildet werden.
Geht das und wenn ja wie?
Hinweis: in den ausgefüllten Zeilen sind immer mindestens die ersten
drei Zellen ausgefüllt (falls das die Sache leichter macht)
Ich könnte auch in Access noch die Anzahl der Zeilen feststellen
lassen, aber wie ich das übergeben soll ist mir ein Rätsel :-((
--
Gruß Susanne
E-Mails werden meistens ungelesen gelöscht
Bitte nur in der Newsgroup antworten
*******************************************
Jean Ruch
2003-08-08 11:17:44 UTC
Permalink
-----Originalnachricht-----
Hinweis: in den ausgefüllten Zeilen sind immer mindestens
die ersten drei Zellen ausgefüllt (falls das die Sache
leichter macht)

Hallo Suzanne,

versuch's mal mit diesem (Teil-) Makro, der jetzt für
Spalte D ausgelegt ist.
Wenn es darum geht zusammenhängende Spalten zu behandeln,
könntest Du Dir im Makro aus zwei dafür bestimmten Zellen
die Adresse der ersten und der letzten reinholen

Suchst Du etwas wie Folgendes:

Sub Makro_Summe_Bildung()

Range("D1").End(xlDown).Offset(1, 0).Select
With Selection
.FormulaR1C1 = "=SUM(R[-3]C:R[-1]C)"
'xxxxxxxx ab hier Optional! xxxxxxx
.Font.ColorIndex = 3
.Font.Bold = True
.NumberFormat = """SUM = ""0"
End With

End Sub

Du kannst Dich ja zurückmelden, wenn Du inzwischen nicht
das Richtige von anderen erhalten bzw. alleine geschafft
hast.

mit freundlichem Gruß

Jean
Jean Ruch
2003-08-08 17:57:45 UTC
Permalink
"Susanne Junkel" <***@mehr-als-pc.de> schrieb im Newsbeitrag news:bgvqpm$sm0rj$***@ID-172943.news.uni-berlin.de...
soll in Excel in
Post by Susanne Junkel
der ersten freien Zeile in einer bestimmten Spalte (z.B. "D") die Summe
der darüberliegenden Zeilen gebildet werden.
Geht das und wenn ja wie?
Hallo Suzanne.

Jetzt habe ich etwas mehr Zeit und möchte meine express-Antwort von heute
Mittag ein wenig ergänzen
In meinem Blatt habe ich in Spalten B bis J mit Ausnahme von Spalte i
unterschiedlich lange zahlenkolonnen (von 3 bis 14 )

In Spalte A, die bei mir ansonsten noch leer war, die Du aber bei Dir durch
"Spalte einfügen" nachbilden kannst, stehen von A1 bis A8 die BUCHSTABEN
der entsprechenden Spalten wo was drin steht ( Müssen nicht unbedingt
geordnet sein )

Mit folgendem ergänzten Makro müßtest Du das erreichen, mindestens das was
ich glaubte zu verstehen: (In meiner Antwort von heute morgen wurden
dagegen nur die drei unmittelbar über der Formel stehenden Werte
zuzsammenaddiert.
Hier können jetzt beliebig viele Zeilen belegt sein, sie werden alle
berücksichtigt)


Sub Summe_ergänzt()

For n = 1 To 8 Step 1
x = Cells(n, 1).Formula
f = CStr(x)

Range(f & "1").End(xlDown).Offset(1, 0).Select
a = Selection.Offset(-1, 0).Address
b = Selection.Offset(-1, 0).End(xlUp).Address

With Selection
.Formula = "=SUM" & "(" & b & ":" & a & ")" & " "

'xxxxxxxx ab hier Optional! xxxxxxx

.Font.ColorIndex = 3
.Font.Bold = True
.NumberFormat = """SUM = ""0"
End With
Next
End Sub


Noch mußt Du "n" anpassen, wobei der untere Wert immer 1 bleibt, ist der
obere Grenzwert die Anzahl Zeilen die in Spalte A belegt sind


Versuch es mal auf einer Kopie eines Deiner Daten. Ich lasse es Dir frei die
Formatierung zu ändern, wenn die nicht ganz passend sein sollte.

mit freundlichem Gruß

Jean
Susanne Junkel
2003-08-09 06:44:46 UTC
Permalink
Hallo Jean,
[Möglicher Lösung des Problems]
Versuch es mal auf einer Kopie eines Deiner Daten. Ich lasse es Dir
frei die Formatierung zu ändern, wenn die nicht ganz passend sein
sollte.
habe die DB nicht hier, kann es daher erst am Montag ausprobieren und
mich dann rückmelden :-)
--
Gruss Susanne
Mails werden meistens ungelesen gelöscht
Antworten bitte nur in der Newsgroup
*************************************
Loading...