2.6k Aufrufe
Gefragt in Tabellenkalkulation von ekg Mitglied (303 Punkte)
Hallo

meine Frage lautet. Wie kann ich ein Makro mit einer Formel erstellen so
das oberhalb der active cell alle zellen summiert werden?

Gruß Erwin

11 Antworten

0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Erwin,

kopiere diesen Code und füge ihn in den Codebereich des relevanten
Arbeitsblattes ein.

Option Explicit

Sub addieren()
Dim dblSum As Double
dblSum = Application.WorksheetFunction.Sum(Range(Cells(1,
Selection.Column), Cells(Selection.Row - 1, Selection.Column)))
MsgBox dblSum
End Sub


Gruß
Rainer
0 Punkte
Beantwortet von ekg Mitglied (303 Punkte)
Hallo Rainer

ich bekomme folgende Fehlermeldung:

Fehler beim komplimieren
Syntaxfehler

Kannst du mir nochmal helfen

Gruß Erwin
0 Punkte
Beantwortet von ekg Mitglied (303 Punkte)
Hallo Rainer

habe den Fehler schon gefunden. Funktioniert sehr gut.
Gibt es auch die Möglichkeit das der Wert direkt in die aktive Zelle
eingetragen wird?

Gruß Erwin
0 Punkte
Beantwortet von ekg Mitglied (303 Punkte)
HAllo

ich würde an stelle des addierens gerne dies Formel integrieren

=SUMMENPRODUKT((($E$5:$E$311)=$E318)*((L$5:L$311)=$D318))

ist das auch möglich

Gruß Erwin
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Erwin,

Gibt es auch die Möglichkeit das der Wert direkt in die aktive
Zelle
eingetragen wird?

,,,das geht so.
Option Explicit

Sub addieren()
Dim dblSum As Double
dblSum = Application.WorksheetFunction.Sum(Range(Cells(1,
Selection.Column), Cells(Selection.Row - 1, Selection.Column)))
Selection.Value = dblSum
End Sub


ich würde an stelle des addierens gerne dies Formel
integrieren

=SUMMENPRODUKT((($E$5:$E$311)=$E318)*
((L$5:L$311)=$D318))

ist das auch möglich



....das halte ich für Unsinn, warum brauchst Du dazu ein Makro?
Aber wenn es dann sein soll, bitte

Option Explicit

Sub zaehlen()
ActiveCell.FormulaR1C1 = _
"=SUMPRODUCT((R[-313]C[4]:R[-7]C[4]=RC[4])*
(R[-313]C[11]:R[-7]C[11]=RC[3]))"
End Sub


Gruß
Rainer
0 Punkte
Beantwortet von ekg Mitglied (303 Punkte)
Hallo Rainer,



....das halte ich für Unsinn, warum brauchst Du dazu ein Makro?
Aber wenn es dann sein soll, bitte

Option Explicit

Sub zaehlen()
ActiveCell.FormulaR1C1 = _
"=SUMPRODUCT((R[-313]C[4]:R[-7]C[4]=RC[4])*
(R[-313]C[11]:R[-7]C[11]=RC[3]))"
End Sub

vielen Dank für deine Hilfe das klappt schon fast wie gewünscht.

Nur noch eine Frage
wie kann ich einen absoluten Bezug für eine Spalte einbauen?
(R[-313]C[4] soll immer gleich sein z.B. $F$3:$F$ 311

Gruß Erwin
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Erwin,

dann so:

ActiveCell.Formula = "=SUMPRODUCT((R5C5:R311C5=RC5)*(R5C12:R311C12=RC4))"


Gruß
Rainer
0 Punkte
Beantwortet von ekg Mitglied (303 Punkte)
Hallo Rainer

funktioniert genauso wie ich es wollte. Vielen Dank.

Aber ich habe noch eine (hoffentlich) letzte Frage kann ich die Formale auch in
mehrere bereits markierte Zellen einfügen? z.B. copy in F311:J311

Gruß Erwin
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Erwin,

Range("F311:J311").Formula = "=SUMPRODUCT((R5C5:R311C5=R18C5)*(R5C12:R311C12=R18C4))"


Ist Dein Problem damit gelöst?

Gruß
Rainer]
0 Punkte
Beantwortet von ekg Mitglied (303 Punkte)
Hallo Rainer,

fast. Die Formel soll in bereits markierte Zellen eingefügt werden

Das heißt ich markiere 5 Zellen und die Formel wird dann durch das Makro in die markierten Zellen
eingefügt.

Gruß Rainer
...