ich brauche eine kleine Hilfe bei meinem Code.
Mein Versuch auch noch die Gültigkeitsregel in einem Bereich einzubauen funktioniert nicht. Beim Codeteil VALIDATION bleibt der Code stehen.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim LeZeiA
Dim LeZeiB
Dim LeZeiMinAB
Dim LeZeiAlle
With ActiveSheet
LeZeiA = Application.Max(16, .Cells(Rows.Count, 1).End(xlUp).Row)
LeZeiB = Application.Max(16, .Cells(Rows.Count, 2).End(xlUp).Row)
LeZeiMinAB = Application.Min(LeZeiA, LeZeiB)
LeZeiAlle = Cells.SpecialCells(xlCellTypeLastCell).Row
Application.ScreenUpdating = False
If Not Intersect(Target, [A16:A10000,B16:B10000,C16:C10000]) Is Nothing Then
.Range("D16:G" & LeZeiAlle).ClearContents
.Range("D16:D" & LeZeiMinAB).FormulaLocal = "=SUMME(B16;C16)"
.Range("E16:E" & LeZeiMinAB).FormulaLocal = "=MAX(MAX(MIN($B16;INDEX(ZZw;VERGLEICH(JAHR( _
$A16);ZEi;0)));0)/100*INDEX(ZAc;VERGLEICH(JAHR($A16);ZEi;0))"
.Range("F16:F" & LeZeiMinAB).FormulaLocal = "=MAX(MAX(MIN($D16;INDEX(ZZw;VERGLEICH(JAHR( _
$A16);ZEi;0)));0)/100*INDEX(ZAc;VERGLEICH(JAHR($A16);ZEi;0))"
.Range("G16:G" & LeZeiMinAB).FormulaLocal = "=SUMME(F16;E16*-1)"
.Range("B16:G" & LeZeiMinAB).NumberFormat = "#,##0.00_ ;[Red]-#,##0.00 "
.Range("B16:G" & LeZeiMinAB).HorizontalAlignment = xlRight
.Range("A16:A" & LeZeiA).NumberFormat = "dd/mm/yyyy;@"
.Range("A16:A" & LeZeiA).HorizontalAlignment = xlCenter
.Range("D16:G" & LeZeiMinAB).Validation
.Delete
.Add Type:=xlValidateTextLength, AlertStyle:=xlValidAlertStop, _
Operator:=xlEqual, Formula1:="0"
End If
End With
End Sub
Sonstige Verbesserungsvorschläge nehme ich auch gerne entgegen.Besten Dank und Servus, Walter