Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1636to1640
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

VBA Summieren

VBA Summieren
10.08.2018 10:13:02
MArc
Servus alle,
ich komme gerade nicht weiter. Ich möchte die Summe von Spalte G bist AD berechnen. Das Problem hierbei ist das es mal 100 oder 10000 Zeilen sein können die berechnet werden müssen. Das bedeutet doch das ich für die Zeilen einen Count brauch. Ich habe schon mal angefangen, aber ich bekomm es ohne hilfe doch nicht hin. Kann mir da bitte jemand unter die Arme greifen?
Sub Summe()
'=============================================================================================== _
'   Input und Output summieren
'=============================================================================================== _
Dim Bereich As Range
Set Bereich = Tabelle1.Range("G6:AD6")
Tabelle1.Cells(.Rows.ount, 55) = Application.WorksheetFunction.Sum(Bereich)
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Summieren
10.08.2018 12:56:00
MArc
hat jemand eine Idee?
Optimieren?
10.08.2018 13:40:07
MArc
Ich habe es selbst hinbekommen =D
Jetzt würde ich aber gerne wissen ob man das noch schneller machen könnte und meine Lösung das wahre ist?
Sub Summe()
Dim z As Integer
With Sheets("Tabelle1")
For z = 6 To .Cells(.Rows.Count, 4).End(xlUp).Row
Cells(z, 55).Value = Application.WorksheetFunction.Sum(Range(Cells(z, 7), Cells(z, 30)))
Next z
End With
End Sub

AW: Optimieren?
10.08.2018 14:49:26
ChrisL
Hi
ScreenUpdating und Calculation (und EnableEvents, falls es welche gibt) ist ein Thema, was jeden Tag behandelt wird. Du kannst es auch für deinen bestehenden Code einsetzen.
Ansonsten müsstest du auf eine vollständige Referenzierung achten (die Punkte für Bezug zur Tabelle)
.Cells(z, 55).Value = Application.WorksheetFunction.Sum(.Range(.Cells(z, 7), .Cells(z, 30)))
Zeilen würde ich prinzipiell als Long deklarieren (da es mehr als 65.536 Zeilen gibt)
Dim z As Long
Hier noch eine Variante, nicht schneller, nur anders:

Sub t()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
With Worksheets("Tabelle1")
With .Range("BC6:BC" & .Cells(Rows.Count, 4).End(xlUp).Row)
.Formula = "=SUM(G6:AD6)"
.Value = .Value
End With
End With
Application.Calculation = xlCalculationAutomatic
End Sub
Und falls die Daten von extern importiert werden, dann könnte man die Summenbildung ggf. auch in eine Abfrage integrieren.
Auch könnte man hinterfragen, warum du nicht Formeln verwendest. Persönlich würde ich, obwohl VBA-Fan, für derartige Standardaufgaben die Standardformeln verwenden.
cu
Chris
Anzeige
Vielen Dank
10.08.2018 14:58:15
MArc
=)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige