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

Daten in Sum() gibt Index Fehler

Daten in Sum() gibt Index Fehler
21.12.2016 16:13:17
Max2
Hallo Leute,
also ich muss einmal im Monat eine Abrechnung machen, mit ekelhaft vielen Daten.
Deswegen dachte ich mir schreibe ich ein Makro welches mir die Arbeit abnimmt.
Es soll folgendes machen:
Die erste Nummer in Zelle A1 nehmen, 7 Spalten nach rechtsrücken, der Variable Sum() den Wert hinzufügen
Die Nummer in Zelle A1 verändert sich irgendwann, also statt 10 kommt irgendwann 13
Deshalb "Sum()", da unbekannt viele Summen gespeichert werden sollen.
Hier mein Code (im Fettmarkierten bekomme ich den Index Fehler):

Option Explicit
Dim i, x
Dim Nr, lngZeile, lngSpalte As Long
Dim c, rngBereich As Range
Dim wks As Worksheet
Dim strDatei As String
Dim Sum() As Double
Set wks = ThisWorkbook.Sheets("xy")
With wks
lngZeile = .Range(.Cells(.Rows.Count, 1), .Cells(2, 1)).Find(What:="*", _
LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:= _
xlPrevious).Row
Set rngBereich = .Range(.Cells(lngZeile, 1), .Cells(2, 1))
Nr = .Cells(2, 1).Value
x = 0
ReDim Preserve Sum(x)
For Each c In rngBereich
For i = 0 To x
ReDim Preserve Sum(i)
If c.Value = Nr Then
Sum(i) = Sum(i) + c.Offset(, 7).Value
Else
Nr = c.Value
x = x + 1
End If
Next i
Next c
End With
Set wks = ThisWorkbook.Sheets("Daten")
With wks
For i = 2 To x
.Cells(i, 2).Resize = Sum(i)
Next i
End With

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Tut mir leid, ich bin blöd... Erledigt
21.12.2016 16:29:22
Max2
Tut mir leid... ich neige dazu einen Thread zu eröffnen bevor ich zu denken beginne.
Hier die Simple Lösung(Peinlich):

Set wks = ThisWorkbook.Sheets("Mnet")
With wks
lngZeile = .Range(.Cells(.Rows.Count, 1), .Cells(2, 1)).Find(What:="*", _
LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:= _
xlPrevious).Row
Set rngBereich = .Range(.Cells(lngZeile, 1), .Cells(2, 1))
Nr = .Cells(2, 1).Value
x = 0
ReDim Preserve Sum(x)
For Each c In rngBereich
If c.Value = Nr Then
Sum(x) = Sum(x) + c.Offset(, 7).Value
Else
Nr = c.Value
x = x + 1
ReDim Preserve Sum(x)
End If
Next c
End With
Set wks = ThisWorkbook.Sheets("Daten")
With wks
For i = 0 To x
.Cells(i + 1, 2).Resize = Sum(i)
Next i
End With

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige