ich habe folgendes Makro:
Option Explicit
Const C_NAME_COLUMN = "A" 'Spalte mit den Namen
Const C_VALUE_COLUMN = "K" 'Spalte mit den Werten
Const C_SUM_COLUMN = "O" 'Spalte mit den Werten
Public Sub calc()
Dim ws As Worksheet
Dim map As Object
Dim sheetNr As Long
Dim name As Variant
Dim value As Integer
Dim rowNr As Long
Set map = CreateObject("scripting.Dictionary")
Set ws = Sheets("Masterblatt")
For rowNr = 2 To ws.Range(C_NAME_COLUMN & Rows.Count).End(xlUp).Row
name = ws.Range(C_NAME_COLUMN & rowNr).value
If Not name = Empty Then
If Not map.exists(Name)Then
map.Add_name, ws.Range(C_SUM_COLUMN & rowNr)
map(name).value = Empty
End If
End If
Next rowNr
For sheetNr = 3 To Worksheets.Count
Set ws = Sheets(3)
For rowNr = 2 To ws.Range(C_NAME_COLUMN & Rows.Count).End(xlUp).Row
name = ws.Range(C_NAME_COLUMN & rowNr).value
value = ws.Range(C_VALUE_COLUMN & rowNr).value
If map.exists(name) Then
map(name).value = map(name).value + value
End If
Next rowNr
Next sheetNr
Set map = Nothing
Set ws = Nothing
End Sub
Das Ergbeniss das er mir also aus den Werten der Spalte K zieht und in O in die jeweilige Zeile zu dem passenden Wert in A schreibt, ist falsch ?! Wieso rechnet er falsch ? Womit rechnet er? Ich finde den Fehler nicht.
Historie: In Spalte A Masterblatt stehen Artikelnr. DIese stehen auch aber in unterschiedlicher REihenfolge/oder gar nicht in Spalte A der übrigen Sheets. Wenn passender Artikel gefunden, dann den Artikelumsatz aus Spalte K über alle Tabellenblätter addieren und in Spalte O im Masterblatt schreiben.
Dann weiter mit nächster Artikelnr. im Masterblatt.
Könnt ihr den Fehler finden ?!
PS: er startet mit der Zusammenrechnung der Werte ab Sheet3.
Vielen lieben Dank und viele Grüße
Ines