Makroausführung
31.08.2003 09:41:20
Jürgen
Hab jetzt endlich alles dank eurer Hilfe soweit fertig. Nur ein Problem existiert noch:
Die Berechnungen des Makros funktionieren nur wenn ich mich auf dem entsprechenden Blatt (in dem Fall Kalkulation) befinde. Befinde ich mich auf einem anderen Blatt, so wird im Blatt Kalkulation gar nichts getan. Ist wahrscheinlich ein banaler fehler von mir.
Hier der Code:
Option Explicit
Sub Kalkulation_Berechnen()
WerteRuecksetzen
AbgleichVermoegen
ZeilenFinden
End Sub
Sub WerteRuecksetzen()
Dim i As Long
Dim z As Long
Dim LetzteZeile As Long
With Worksheets("Kalkulation")
For z = 8 To .Range("B65536").End(xlUp).Row
If .Cells(z, 2) = "" Then
LetzteZeile = z
Exit For
End If
Next z
For i = 8 To .Range("FH" & LetzteZeile).End(xlUp).Row
If .Cells(i, 164) > "0" Then
Range("FE" & i).Value = "0"
Range("FP" & i).Value = "0"
Range("FN" & i).Value = "0"
Application.CutCopyMode = False
End If
Next i
End With
End Sub
Sub AbgleichVermoegen()
Dim i As Long
Nochmal:
With Worksheets("Kalkulation")
For i = 8 To .Range("FC65536").End(xlUp).Row
If .Cells(i, 159) = "0" Then
If Range("FJ" & i).Value < Range("FK" & i).Value Then
Range("FC" & i).Copy
Range("FC" & i - 1).PasteSpecial Paste:=xlPasteValues
GoTo Nochmal
Else
Range("FJ" & i).Copy
Range("FC" & i).PasteSpecial Paste:=xlPasteValues
End If
Application.CutCopyMode = False
Exit For
End If
Next i
End With
End Sub
Sub ZeilenFinden()
Dim i As Long
Dim z As Long
Dim LetzteZeile As Long
With Worksheets("Kalkulation")
For z = 8 To .Range("B65536").End(xlUp).Row
If .Cells(z, 2) = "" Then
LetzteZeile = z
Exit For
End If
Next z
For i = 8 To .Range("FI" & LetzteZeile).End(xlUp).Row
If .Cells(i, 165) > "0" Then WerteBerechnen (i)
If i = LetzteZeile Then
Exit For
End If
Next i
End With
End Sub
Sub WerteBerechnen(Zeile As Long)
If Range("FI" & Zeile).Value < Range("FM" & Zeile).Value Then
Range("FI" & Zeile).Copy
Range("FN" & Zeile).PasteSpecial Paste:=xlPasteValues
Else
Range("FM" & Zeile).Copy
Range("FN" & Zeile).PasteSpecial Paste:=xlPasteValues
End If
If Range("FI" & Zeile).Value < Range("FK" & Zeile).Value Then
Range("FI" & Zeile).Copy
Range("FP" & Zeile).PasteSpecial Paste:=xlPasteValues
Else
Range("FK" & Zeile).Copy
Range("FP" & Zeile).PasteSpecial Paste:=xlPasteValues
End If
If Range("FI" & Zeile).Value > "0" Then
Range("FI" & Zeile).Copy
Range("FE" & Zeile).PasteSpecial Paste:=xlPasteValues
End If
Application.CutCopyMode = False
End Sub