Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
752to756
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
752to756
752to756
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Summe über ActiveCell

Summe über ActiveCell
11.04.2006 17:26:27
Stefan
Hallo zusammen,
ich habe mal wieder ein kleines Problem. Wenn in der Spalte A der Text "Summe" erscheint, soll in der Spalte F(gleiche Zeile) eine AutoSumme über die vorherigen Zahlen der Spalte F stattfinden. Das soll sich für alle "Summe" wiederholen.
Ich hatte mir mal Gedanken über den Code gemacht, jedoch meckert Excel in der Zeile wo ich die Summe bilden möchte. Weiß jemand eine Lösung?

Sub Insert_Sum()
Dim k As Long, i As Long
k = 1
For i = 1 To Range("A65536").End(xlUp).Row + 1
Cells.Find(what:="Summe", LookAt:=xlPart).Activate
Zelle = ActiveCell.Offset(0, 5).Select
Zelle = Application.WorksheetFunction.Sum(Range(Cells(k, 0), Cells(i - 1, 0)))
ActiveCell.Font.Bold = True
k = i + 1
'Set Zelle = Cells.FindNext(After:=ActiveCell)
Next i
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Summe über ActiveCell
11.04.2006 17:45:52
Fritz
Moin Stefan,
ich würde es so machen:
Option Explicit

Sub xx()
Dim I&, Summen As Double
Summen = 0
For I = 1 To Range("A65536").End(xlUp).Row + 1
If LCase(Cells(I, 1)) <> "summe" Then
Summen = Summen + Cells(I, 6)
Else
Cells(I, 6) = Summen
Summen = 0
End If
Next
End Sub

AW: Summe über ActiveCell
11.04.2006 18:20:56
Dan
Hi Stefan, ich schlage mal diesen Code vor. Gruss Dan
Option Explicit

Sub Insert_Sum()
Dim rngToSearchIn As Range
Dim rngCell As Range
Set rngToSearchIn = Range("a1:a" & Range("A65536").End(xlUp).Row)
For Each rngCell In rngToSearchIn.Cells
If (rngCell.Value = "Summe" And rngCell.Row > 1) Then
rngCell.Offset(0, 5).FormulaR1C1 = "=SUM(R[-" & (rngCell.Row - 1) & "]C:R[-1]C)"
rngCell.Font.Bold = True
End If
Next rngCell
End Sub

Anzeige
AW: Summe über ActiveCell
11.04.2006 21:30:44
Stefan
Erstmal Danke an Euch beide.
Jetzt habe ich aber gleich nochmal eine Frage: in Eurem Fall, wird nur etwas berechnet, wenn "Summe" exakt in der Zelle steht. Deshalb mein Ansatz mit LookAt:=xlPart, damit auch "Teilsumme" oder "SumME" die Berechnung auslöst. Den Code hatte ich jetzt geändert, aber so läuft es wieder nur bis zur ersten "Summe". Weiß jemand wo der Fehler liegen könnte?

Sub Insert_Sum()
Dim rngToSearchIn As Range
Dim rngCell As Range
Set rngToSearchIn = Range("a1:a" & Range("A65536").End(xlUp).Row)
For Each rngCell In rngToSearchIn.Cells
If (rngCell.Value = Cells.Find(what:="Summe", LookAt:=xlPart) And rngCell.Row > 1) Then
rngCell.Offset(0, 5).FormulaR1C1 = "=SUM(R[-" & (rngCell.Row - 1) & "]C:R[-1]C)"
rngCell.Font.Bold = True
End If
Next rngCell
End Sub

Anzeige
AW: Summe über ActiveCell
12.04.2006 09:40:49
Dan
Hallo Stefan,
ich habe es mir ueberlegt, und festgestellt, dass ich Deine Aufgabe moeglicher Weisse nicht richtig verstanden habe :-). Schau Dir den ergebnis selbs mal an. Hier die alte Version:

Sub Insert_Sum_1()
Dim rngToSearchIn As Range
Dim rngCell As Range
Set rngToSearchIn = Range("a1:a" & Range("A65536").End(xlUp).Row)
For Each rngCell In rngToSearchIn.Cells
If (VBA.InStr(1, UCase(rngCell.Value), "SUMM") > 0 And rngCell.Row > 1) Then
rngCell.Offset(0, 5).FormulaR1C1 = "=SUM(R[-" & (rngCell.Row - 1) & "]C:R[-1]C)"
rngCell.Font.Bold = True
End If
Next rngCell
End Sub

Und hier die neue Version:

Sub Insert_Sum_2()
Dim rngToSearchIn As Range
Dim rngCell As Range
Dim lngRowWithPreviousSumm As Long
Set rngToSearchIn = Range("a1:a" & Range("A65536").End(xlUp).Row)
For Each rngCell In rngToSearchIn.Cells
If (VBA.InStr(1, UCase(rngCell.Value), "SUMM") > 0) Then
If (rngCell.Row > (lngRowWithPreviousSumm + 1)) Then
rngCell.Offset(0, 5).FormulaR1C1 = "=SUM(R[-" & (rngCell.Row - lngRowWithPreviousSumm - 1) & "]C:R[-1]C)"
End If
lngRowWithPreviousSumm = rngCell.Row
rngCell.Font.Bold = True
End If
Next rngCell
End Sub

Die neue Version ist erweitert und macht eigentlich das selbe, was auch das Code vom Fritz macht :-), nur dass es die Formel direct in die Zellen shcreibt => so kann man die Formeln auch kontrolieren. Gruss Dan.
Anzeige
AW: Summe über ActiveCell
12.04.2006 15:12:13
Fritz
dann so:
If instr(LCase(Cells(I, 1)),"summe") &gt 0 then
Danke
12.04.2006 21:05:09
Stefan
Danke an Euch beide. Jetzt funktioniert es ;)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige