Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1784to1788
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
Inhaltsverzeichnis

Summe per VBA bilden

Summe per VBA bilden
05.10.2020 11:39:44
Matthias
Hallo zusammen,
ich möchte eine Summe via Makro bilden, allerdings ist die zu berücksichtigende Anzahl der Zeilen variabel.
Ich habe es folgendermaßen versucht:

Sub summe()
Dim l as Long
Dim lmax as Long
Dim swert as Long
Dim zwert as Long
Cells(1, 37).Value = "Tour-Summe"
l = 3
lmax = Worksheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Row
Do Until l > lmax
If Cells(l, 36).Value  Cells(l - 1, 36).Value Then
Cells(l - 1, 34) = swert
ElseIf Cells(l, 36).Value  Cells(l + 1, 36).Value Then
Cells(l, 34) = zwert
End If
Cells(l, 37).Value = "=SUMME(" & swert & ":" & zwert & ")"
l = l + 1
Loop
End Sub
Falls mein Versuch nicht verständlich sein sollte...
Ich lasse den Code prüfen, ob die Zelle l - 1 den gleichen Wert in Spalte 36 hat,
wenn ja, dann soll die Zelle (l - 1, 34) den ersten Wert bilden (AH2 in dem Fall)
Wenn l + 1 einen anderen Wert hat, dann soll l, 34 den letzten Wert der Summe bilden, beispielsweise AH10.
Anschließend soll eine Zelle rechts von zwert (AH10) die Summe gebildet werden "=SUMME(AH2:AH10)".
Kann mir jemand erläutern wie dies in VBA umsetzbar ist?
Vielen lieben Dank vorab und besten Gruß
Matthias

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

Betreff
Datum
Anwender
Anzeige
AW: Summe per VBA bilden
05.10.2020 11:46:30
ralf_b
Cells(l - 1, 34) = swert wann wird denn swert und zwert gefüllt?
swert = Cells(l - 1, 34) ?
AW: Summe per VBA bilden
05.10.2020 11:57:51
Matthias
Hallo Ralf,
Wenn eine neue Tourennummer (in Spalte AH) beginnt, dann soll die Zelle als erster Wert (swert) der Summe deklariert werden, wenn diese Tournummer endet, dann als letzte Zelle.
Rechts neben der letzten Zelle soll dann eine Summe gebildet werden, die jede Zeile mit der selben Tournummer berücksichtigt. Bspw. =SUMME(AH2:AH10)
Die Tournummern haben unterschiedlich viele Zeilen, sind jedoch alle untereinander.
Wenn eine Nummer endet, beginnt die nächste.
LG
AW: Summe per VBA bilden
05.10.2020 13:07:49
ralf_b
schon gut, ich glaube du hast mich nicht verstanden.
wo im unten stehenden Code erhalten dein variablen ihren wert?
ich sehe nur eine Deklaration und später dann eine Zuweisung der Werte aus den "leeren" Variablen in eine Zelle.
 Dim swert as Long
Dim zwert as Long
Cells(1, 37).Value = "Tour-Summe"
l = 3
lmax = Worksheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Row
Do Until l > lmax
If Cells(l, 36).Value  Cells(l - 1, 36).Value Then
 Cells(l - 1, 34) = swert
ElseIf Cells(l, 36).Value  Cells(l + 1, 36).Value Then
 Cells(l, 34) = zwert

Anzeige
AW: Summe per VBA bilden
05.10.2020 13:40:06
Matthias
Hab das mittlerweile lösen können,
danke trotzdem für die Hilfe!
Für alle die auf dieses Thema per Google stoßen:

Sub summe()
Dim l As Long
Dim lmax As Long
Dim mmin As Long
Dim mmax As Long
l = 2
lmax = Worksheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Row
Do Until l > lmax
Do Until Cells(l, 2).Value = "ZIEL"
If Cells(l, 2).Value = "START" Then
mmin = l
ElseIf Cells(l, 2).Value = "ZIEL" Then
mmax = l
End If
l = l + 1
Loop
mmax = l
Cells(l, 37).Value = "=SUM(R[-" & mmax - mmin & "]C[-3]:RC[-3])"
l = l + 1
Loop
End Sub

Anzeige
AW: Summe per VBA bilden
05.10.2020 11:49:42
Jörg
ich ermittele mir oft die Anzahl der "gefüllten Zeilen" über
Selection.CurrentRegion.Rows.Count
Man könnte auch eine While-Schleife machen:
While ActiveCell.Value ""
oder
While Celle(i,36) = ...
AW: Summe per VBA bilden
05.10.2020 12:00:44
Matthias
Hallo Jörg,
danke schonmal für den Input.
Wie würde es den mit Selection.CurrentRegion.Rows.Count aussehen?
Bzw wie steuer ich dann an, dass die richtigen Zeilen ermittelt werden)
LG

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige