3 Zellen summieren in Schleife (VB-Makro)

Hallo,

ich bin noch Anfänger was Makros angeht und habe folgendes Problem.

Ich habe eine Tabelle hier der link dazu:
( http://www.loaditup.de/126317.html ) (Beispieltabelle die das Problem erläutert).

Im Datenblatt Daten sind zu jedem Datum 3 Werte. Das Makro soll die 3 Werte pro Tag summieren und als Ergebnis pro Tag ausgegeben werden. Ich habe jetzt angefangen, kriege aber die drei Werte nicht summiert.
Bzw. weiß nicht wie ich dran gehen soll, da die Zellen sich ja immer verändern.

Bis jetzt sieht es so aus:

Sub ersterVersuch()

Dim intzeile As Integer

Sheets(„daten“).Activate
With ActiveSheet

For intzeile = (2) To .UsedRange.Rows.Count Step 3
.Cells(intzeile, 5).Value = _
.Cells(intzeile, 1).Value

Next intzeile

End With

End Sub

Sub ersterVersuch2()

Dim intzeile As Integer

Sheets(„daten“).Activate
With ActiveSheet

For intzeile = (2) To .UsedRange.Rows.Count Step 3
.Cells(intzeile, 6).Value = _
.Cells(intzeile, 2).Value

Next intzeile

End With

End Sub

Schön wäre es, wenn beim Ergebnis nicht noch die 2 Zellen daziwschen wären und es auf einem neuen Datenblatt ausgegebenn würde. Nur das ist erstmal nicht wichtig.

Das weitere Problem ist, dass die Anzahl der Tage und auch die Anzahl der Werte unterschiedlich ist. In der Beispieltabelle sind es immer 3 Werte wobei dies nur zur Vereinfachung so ist. Ich muss es noch hinbekommen, dass er erkennt wann das Datum wechselt und die entsprechenden Werte der Spalte „Anzahl“ für den Tag summiert.

Hat jemand verstanden was ich meine?

Wäre nett wenn mir jemand helfen könnte.

Viel Dank.

Ich habe eine Tabelle hier der link dazu:
( http://www.loaditup.de/126317.html ) (Beispieltabelle die
Im Datenblatt Daten sind zu jedem Datum 3 Werte. Das Makro
soll die 3 Werte pro Tag summieren und als Ergebnis pro Tag
ausgegeben werden. Ich habe jetzt angefangen, kriege aber die

Hi Stephan,

du meinst Vba und das von Excel!? Welche Version usw. Scahu mal bitte in die Brettbeschreibung, dafür ist sie da und vom Moderator liebevoll gebastelt :smile:

Zum Testen habe ich das Resultat in ein neues Blatt „Anzahl“ geschrieben, mußte dir ggfs. anpassen im Code beim Set-Befehl.

Option Explicit
Sub Anzahl()
Dim ZeiD As Long, ZeiA As Long, wsA As Worksheet
On Error GoTo Fehler
Application.ScreenUpdating = False
Set wsA = Worksheets("Anzahl")
wsA.Cells.ClearContents
wsA.Range("A1:B1") = Split("Datum Anzahl")
ZeiA = 2
With Worksheets("Daten")
 .Range("A2:B2").Copy Destination:=wsA.Range("A2")
 For ZeiD = 3 To .Cells(Rows.Count, 1).End(xlUp).Row
 If .Cells(ZeiD, 1) = wsA.Cells(ZeiA, 1) Then
 wsA.Cells(ZeiA, 2) = wsA.Cells(ZeiA, 2) + .Cells(ZeiD, 2)
 Else
 ZeiA = ZeiA + 1
 wsA.Cells(ZeiA, 2) = .Cells(ZeiD, 2)
 wsA.Cells(ZeiA, 1) = .Cells(ZeiD, 1)
 End If
 Next ZeiD
End With
Fehler:
Application.ScreenUpdating = True
End Sub

Gruß
Reinhard

Hallo Reinhard,

ich bin überwältigt. Vielen Vielen Dank. Genau so sollte es funktionieren!!!

Programmiert habe ich es mit Excel 2007. Es muss aber unter Excel 2003 laufen. Mein erster Versuch ging aber heute unter 2003 nicht, irgendwie komisch.

Jetzt muss ich schauen, dass ich mein Beispielprogramm auf die Original Tabelle anweden kann. Da muss ich die Zeilen und Spalten noch anpassen, ich hoffe das bekomm ich hin :smile:

Also nochmals vielen dank.

Gruß

Programmiert habe ich es mit Excel 2007. Es muss aber unter
Excel 2003 laufen. Mein erster Versuch ging aber heute unter
2003 nicht, irgendwie komisch.

Hi Stephan,
danke.
Ich habe es mit XL2002 probiert/hergestellt.
Gruß
Reinhard