03.03.2016, 08:27
Hallo Frank,
mit den Nullen ist kein Problem, man bekommt es mit einer IF Abfrage geregelt.
Das hier:
verstehe ich nicht ganz.
Wenn Du es so meinst, dass die Zeilen in die aufsummiert wurden, kenntlich gemacht werden, dann lass mal folgenden Code laufen und schau Dir die neue letzte Spalte an.
Diese Spalte nach eins Filtern, dann hast Du die Zeilen.
Die Fehlermeldung kann ich nicht nachvollziehen. Bei mir tritt kein Fehler ein.
Hattest Du den zuletzt eingestellten Code genutzt?
Jetzt teste folgenden Code, tritt der Fehler wieder auf?
mit den Nullen ist kein Problem, man bekommt es mit einer IF Abfrage geregelt.
Das hier:
Zitat:...bleibt noch die Hürde mit dem Markieren addierter Zahlenwerte die beide höher Null waren.
verstehe ich nicht ganz.
Wenn Du es so meinst, dass die Zeilen in die aufsummiert wurden, kenntlich gemacht werden, dann lass mal folgenden Code laufen und schau Dir die neue letzte Spalte an.
Diese Spalte nach eins Filtern, dann hast Du die Zeilen.
Die Fehlermeldung kann ich nicht nachvollziehen. Bei mir tritt kein Fehler ein.
Hattest Du den zuletzt eingestellten Code genutzt?
Jetzt teste folgenden Code, tritt der Fehler wieder auf?
Code:
Option Explicit
Sub Löschen()
Dim i As Long, j As Long
Dim lngS As Long ' die letzte belegte Spalte in Zeile 4
Dim lngZ As Long ' die letzte belegte Zeile in Spalte A
Dim dblS As Double
On Error GoTo Ende
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
With Worksheets("Tabelle1")
lngZ = .Cells(Rows.Count, 1).End(xlUp).Row
lngS = .Cells(4, Columns.Count).End(xlToLeft).Column
.Range(Cells(4, 1), .Cells(lngZ, lngS)).Select
.Range(Cells(4, 1), .Cells(lngZ, lngS)).Sort _
Key1:=.Range("A1"), Order1:=xlAscending, _
Header:=xlYes, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
.Range(.Cells(5, lngS + 2), .Cells(lngZ, lngS + 2)).FormulaLocal = "=Wenn(A5<>A4;ZÄHLENWENN(A:A;A5);0)"
For i = 5 To lngZ
If Cells(i, lngS + 2) > 1 Then
If .Cells(i, 1) = .Cells(i + 1, 1) Then
For j = 2 To lngS
dblS = Application.WorksheetFunction.Sum(.Range(.Cells(i, j), .Cells(i + .Cells(i, lngS + 2) - 1, j)))
If dblS > 0 Then
.Cells(i, j) = dblS
.Cells(i, lngS + 1) = 1
End If
Next j
End If
End If
Next i
.Range(Cells(4, 1), .Cells(lngZ, lngS)).RemoveDuplicates Columns:=1, Header:=xlYes
.Columns(lngS + 2).Clear
End With
Ende:
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
If Err Then MsgBox "Fehler: " & Err.Number & vbLf & vbLf & Err.Description
End Sub