Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Summe in Zeile und Spalte VBA

Summe in Zeile und Spalte VBA
18.11.2012 12:09:20
Alex
Hallo werte Excel Profis
ich bastle gerade an einem VBA Befehl das folgendes kann:
Sobald in Zeile 6 etwas steht wird ab Zeile 7 alle Werte in der jeweiligen Spalte summiert und in der Zeile 5 der Spalte ausgegeben.
Weiter soll wenn in Spalte A was steht (ab Zeile 8), die ganze Zeile summiert werden und in Spalte B der Zeile ausgegeben werden.
Ich habe dazu folgende Idee, jedoch funktioniert das nicht ganz oder ich müsste viel zu viele _
Parameter definieren: Dim Summe Summe = Application.WorksheetFunction.Sum(ActiveSheet.Range("C:C")) Range("C5").Value = Summe
Kann mir jemand weiter helfen?
Vielen Dank

Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
und was wenn in (B) schon was steht ? kwT
18.11.2012 12:52:37
Matthias

AW: Summe in Zeile und Spalte VBA
18.11.2012 12:56:02
Matze,Matthias
Hallo Alex
das würde einen Zirkelbezug ergeben.
In D5=Summe(C:C) muss in einer anderen Zelle berechnet werden

AW: Summe in Zeile und Spalte VBA
18.11.2012 13:10:15
Alex
Hallo, danke für die Antwort! wen etwas steht soll überschrieben werden.
Er soll ab Zeile 7 Zusammenzählen, somit gibt es doch keinen Zirkelbezug.
Gruss

Anzeige
AW: Summe in Zeile und Spalte VBA
18.11.2012 13:11:38
Matze,Matthias
Hallo Alex,
Ergebnis in C5 berechnet Summe unterhalb bis letzte Zeile
Sub Test ()
Dim LetzteZeile as Long
With Tabelle1
LetzteZeile = .Cells(Rows.Count, 3).End(xlUp).Row
Range("C5").Value = Application.WorksheetFunction.Sum(ActiveSheet.Range("C7:C" & LetzteZeile))
End With
End Sub
Matze

Anzeige
AW: Summe in Zeile und Spalte VBA
18.11.2012 13:32:35
Matze,Matthias
Hallo Alex,
ohne VBA so gemeint?
 ABCDE
5  13 12
6  100 Y
7x6123
839423
9x9423
1059423

Formeln der Tabelle
ZelleFormel
C5=WENN(C6="";"";SUMME(C7:C10))
D5=WENN(D6="";"";SUMME(D7:D10))
E5=WENN(E6="";"";SUMME(E7:E10))
B7=WENN(A7="";"";SUMME($C7:$E7))
B8=WENN(A8="";"";SUMME($C8:$E8))
B9=WENN(A9="";"";SUMME($C9:$E9))
B10=WENN(A10="";"";SUMME($C10:$E10))


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Matze

Anzeige
AW: Summe in Zeile und Spalte VBA
18.11.2012 14:05:49
Gerd
Hallo Alex!
Sub teste()
Dim rngCell As Range
Range("C5:" & Cells(5, Columns.Count).Address).ClearContents
Range("B8:" & Cells(Rows.Count, 2).Address).ClearContents
If Not Intersect(Range("C6:" & Cells(6, Columns.Count).Address), Cells.SpecialCells( _
xlCellTypeConstants)) Is Nothing Then
For Each rngCell In Intersect(Range("C6:" & Cells(6, Columns.Count).Address), Cells. _
SpecialCells(xlCellTypeConstants)).Offset(-1)
rngCell.FormulaR1C1 = "=SUM(R7C:R" & Application.Max(7, Cells(Rows.Count, rngCell.Column). _
End(xlUp).Row) & "C)"
rngCell.Value = rngCell.Value
Next
End If
If Not Intersect(Range("A8:" & Cells(1, Columns.Count).Address), Cells.SpecialCells( _
xlCellTypeConstants)) Is Nothing Then
For Each rngCell In Intersect(Range("A8:" & Cells(Rows.Count, 1).Address), Cells.SpecialCells( _
xlCellTypeConstants)).Offset(, 1)
rngCell.FormulaR1C1 = "=SUM(RC3:RC" & Application.Max(3, Cells(rngCell.Row, Columns.Count) _
.End(xlToLeft).Column) & ")"
rngCell.Value = rngCell.Value
Next
End If
End Sub
Gruß Gerd

Anzeige
AW: Summe in Zeile und Spalte VBA
18.11.2012 14:28:31
Alex
Hey Gerd
Das Teil ist super, danke dir vielmals und noch einen schönen Sonntag!
Gruss Alex

AW: Summe in Zeile und Spalte VBA
18.11.2012 14:36:43
Matze,Matthias
Hallo Zusammen,
cool Gerd, gleich mal als Vorlage gespeichert, danke.
habs mal kurz überflogen, Alex du wolltest ab Zeile 7 Rechnen:
ändere B8 zu B7 (oben)
und (unten) A8 zu A7
Matze

Anzeige
AW: Summe in Zeile und Spalte VBA
18.11.2012 14:57:39
Gerd
Hallo Matthias!
Weiter soll wenn in Spalte A was steht (ab Zeile 8), die ganze Zeile summiert werden ...
So habe ich den 2. Teil gelesen.
Gruß Gerd

Ups, stimmt,... owT
18.11.2012 15:08:37
Matze,Matthias
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Summe in Zeile und Spalte mit VBA


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" -> Einfügen -> Modul.

  3. Kopiere und füge den folgenden Code ein:

    Sub BerechneSumme()
       Dim LetzteZeile As Long
       Dim rngCell As Range
    
       ' Berechnung für Spalte C
       With Tabelle1
           LetzteZeile = .Cells(Rows.Count, 3).End(xlUp).Row
           Range("C5").Value = Application.WorksheetFunction.Sum(ActiveSheet.Range("C7:C" & LetzteZeile))
       End With
    
       ' Berechnung für Zeile 8 und weiter in Spalte B
       Range("B8:" & Cells(Rows.Count, 2).Address).ClearContents
       For Each rngCell In Range("A8:A" & LetzteZeile)
           If rngCell.Value <> "" Then
               rngCell.Offset(0, 1).FormulaR1C1 = "=SUM(RC3:RC" & Application.Max(3, rngCell.Row) & ")"
           End If
       Next rngCell
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro aus: Drücke ALT + F8, wähle BerechneSumme und klicke auf "Ausführen".


Häufige Fehler und Lösungen

  • Zirkelbezug: Wenn du in der Zelle, die summiert werden soll, bereits eine Formel hast, könnte dies zu einem Zirkelbezug führen. Stelle sicher, dass die Zelle leer ist oder lösche die vorhandene Formel.
  • Falsche Zeilenreferenz: Achte darauf, dass die Zeilen, die summiert werden, korrekt referenziert sind. Wenn du ab Zeile 7 summieren möchtest, überprüfe die Range-Angaben im Code.
  • VBA-Sicherheitseinstellungen: Wenn das Makro nicht ausgeführt wird, überprüfe die Sicherheitseinstellungen für Makros in Excel. Du musst sie möglicherweise aktivieren.

Alternative Methoden

Wenn du VBA nicht verwenden möchtest, kannst du die Excel-Funktion SUMME auch direkt in die Zellen eingeben:

  • In Zelle C5:

    =SUMME(C7:C100)  // Anpassung je nach Bedarf
  • In Zelle B7:

    =WENN(A7<>"";SUMME(C7:E7);"")

Diese Formeln summieren die Werte ab Zeile 7 in Spalte C und summieren die ganze Zeile, wenn in Spalte A etwas steht.


Praktische Beispiele

Angenommen, du hast folgende Werte in Spalte C:

Zeile C
6
7 10
8 20
9 30
10

Nach dem Ausführen des Makros wird in Zelle C5 die Summe (10 + 20 + 30) = 60 angezeigt.

Für den Bereich A8 bis A10 kannst du Werte eintragen, und das Makro wird die gesamte Zeile summieren und das Ergebnis in Spalte B ausgeben.


Tipps für Profis

  • Optimierung des Codes: Überlege, Schleifen und Bedingungen so zu optimieren, dass der Code schneller ausgeführt wird, besonders bei großen Datenmengen.
  • Fehlerbehandlung einbauen: Implementiere On Error Resume Next, um unerwartete Fehler abzufangen, ohne dass das Makro stoppt.
  • Makros regelmäßig speichern: Speichere deine Excel-Datei als .xlsm, um sicherzustellen, dass deine Makros nicht verloren gehen.

FAQ: Häufige Fragen

1. Wie kann ich die Summe einer gesamten Spalte in VBA berechnen?
Du kannst die gesamte Spalte mit dem Befehl Application.WorksheetFunction.Sum(ActiveSheet.Range("C:C")) summieren. Achte darauf, dass dies nur funktioniert, wenn die Zelle, in der das Ergebnis angezeigt wird, nicht Teil der summierten Spalte ist.

2. Was passiert, wenn ich das Makro ausführe, während in den Zielzellen bereits Werte stehen?
Das Makro überschreibt bestehende Werte in den Zielzellen, es sei denn, du hast im Code Schutzmaßnahmen eingebaut, um das zu verhindern.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige