Ohne dass ich den Nährwert verstehe, laufen tut's
Option Explicit
Sub ÜbersichtErstellen()
' ein Arbeitsblatt "Makros", wo ich ein Command-Button eingefügt habe
' das Makro "ÜbersichtErstellen" zugewiesen habe
'** ergo ist beim Klick auf Button Sheets("Makros") aktiv
'** gehe ich leise weinend davon aus, dass
'** Code wo Makro auch in Mappe wo Sheet("Makros") - somit ThisWorkbook überflüssig
'Inhalte in Blätter "Übersicht" leeren
Sheets("Übersicht").Range("A1:AB200").Clear
'von Abzug nach Übersicht
Sheets("Abzug").Range("A1:AB200").Copy Sheets("Übersicht").Range("A1")
'** bin es leid ständig zuzuweisen
With Sheets("Übersicht")
'Spalten löschen
.Columns("A:A").Delete
.Columns("B:C").Delete
.Columns("C:C").Delete
.Columns("D:N").Delete
.Columns("H:J").Delete
.Columns("J").Delete
'** verbleibt Spalte 2,5,7,19,20,21,22,26,27 aus "Übersicht"
'** warum kopierst du nicht nur diese und da nur die benutzen Zeilen (UsedRange)
'Zahl vom Textformat ins Zahlenformat umwandeln
Dim LetzteZeile As Long
Dim x As Long
'** Dim zur Laufzeit ist häßlich
LetzteZeile = .Range("C200").End(xlUp).Row
For x = 2 To LetzteZeile
.Cells(x, 3) = CLng(Cells(x, 3))
.Cells(x, 3).NumberFormat = "General"
Next x
'Werte dazuschreiben
.Range("k1").Value = "Summe"
.Range("N1").Value = "check"
'falls neue KST dazu kommen, dann Range "J4:J6" anpassen
Sheets("Makros").Range("J4:J6").Copy .Range("K2")
'Errechnen der Summen pro Kostenstelle
Dim Arg1 As Range 'the range I want to sum
Dim Arg2 As Range 'criteria range
Dim Arg3 As Variant 'the criteria as VARIANT
Dim i As Integer
Dim LastColumn As Long: LastColumn = 12
'** Spalten geben Long zurück
Set Arg1 = .Range("H1:H200") 'Arg1 and Arg2 must be the same size
Set Arg2 = .Range("C1:C200") 'Arg1 and Arg2 must be the same size
Set Arg3 = .Range("K2:K13") 'criteria can have different size
'falls neue KST dazu kommen, dann Range letzten Wert von i anpassen - je nach Zeilenanzahl
For i = 2 To 4
.Cells(i, LastColumn) _
= Application.WorksheetFunction.SumIfs(Arg1, Arg2, Arg3.Cells(i - 1, 1).Value)
'** nicht überprüft
Next
'Errechnen der Gesamtsumme + Check
.Cells(1, 12).Formula = "=SUM(L2:L15)"
.Cells(1, 15).Formula = "=SUM(H:H)-L1"
End With
End Sub
|