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

große anzahl Spalten Summe bilden

große anzahl Spalten Summe bilden
17.03.2017 07:58:06
Markus
Hallo zusammen,
brauch noch malz eure Unterstützung.
in meiner Tabelle mit 20000 Zeilen möchte ich jeweils die Summe bilden, also
Summe("G2:I2") Ausgabe auf J2
Summe)"G3:I3") Ausgabe auf J3
Wenn ich hier ein Schleife laufen lasse dauert das eine kleine Ewigkeit.
Hier gibt es doch sicherlich eine Lösung mit Arrays, oder?
Danke
MS

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: große anzahl Spalten Summe bilden
17.03.2017 08:01:55
Markus
PS bis jetzt habe ich das hier, aber es funkt nicht so richtig.
Sub test2()
Dim dic
Dim arr
Dim ID As String
Dim Z As Long
Dim f As String
Dim i As Integer
Dim lzber As Integer
lzber = Sheets("Ber").Cells(Rows.Count, 1).End(xlUp).Row
With Sheets("ber")
arr = .Range("G2:O10").Value
'  " & lzber).Value
End With
Set dic = CreateObject("Scripting.Dictionary")
With Sheets("BER")
For Z = 1 To UBound(arr, 1)
ID = Join(Array(arr(Z, 1), arr(Z, 2), arr(Z, 3), arr(Z, 4), arr(Z, 5), arr(Z, 6), arr(Z, 7) _
, arr(Z, 8), arr(Z, 9)), "|")
dic(ID) = dic(ID) + 1
arr(Z, 1) = dic(ID)
MsgBox "Summe: " & WorksheetFunction.Sum(ID)
Next
End With
End Sub

Anzeige
Du könntest auch einfach...
17.03.2017 08:40:10
Case
Hallo, :-)
... eine Formel in den Bereich eintragen lassen - und dann durch die Werte ersetzen: ;-)
Option Explicit
Sub Main()
Dim lngLastRow As Long
Dim lngCalc As Long
On Error GoTo Fin
With Application
.ScreenUpdating = False
.EnableEvents = False
lngCalc = .Calculation
.Calculation = xlCalculationManual
.DisplayAlerts = False
End With
With ThisWorkbook.Worksheets("Tabelle1") ' Tabellenblattnamen anpassen!
lngLastRow = IIf(IsEmpty(.Cells(.Rows.Count, 9)), _
.Cells(.Rows.Count, 9).End(xlUp).Row, .Rows.Count)
.Range("J2:J" & lngLastRow).Formula = "=SUM(G2:I2)"
.Range("J2:J" & lngLastRow).Value = .Range("J2:J" & lngLastRow).Value
End With
Fin:
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = lngCalc
.DisplayAlerts = True
End With
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & " " & Err.Description
End Sub
Das dauert keine Sekunde. Bedingt auch durch das abschalten einiger Bremsen. ;-)
Servus
Case

Anzeige
AW: Du könntest auch einfach...
17.03.2017 09:30:44
Markus
Hallo Case
Wahnsinn, klappt. Hast ja keine Ahnung wie lange ich hier schon Rumdoktor.
Herzlichen Dank auch
MS
Gerne! Danke für die Rückmeldung, owT
17.03.2017 09:33:49
Case
:-)
AW: So wie du es programmiert hast..
17.03.2017 10:05:33
Daniel
... dürfte das Ausschalten der Bremsen keinen großen Einfluss mehr auf die Laufzeit haben, das ist auch mit Bremsen schnell genug.
Gruß Daniel

293 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige