2 functions+1code=1code aber wie?
08.03.2006 19:07:05
selo
habe ein problem das bei einem bestimmten code als schleife immer auf die functionen atc1 oder atc gesprungen wird ohne irgendwelche verweise darauf. Habe in mehreren foren gefragt aber keiner hat eine lösung für mich.
Nun habe ich mir gedacht den code
Sub berechnung ()
Worksheets("gesamtplanung").Activate
With ActiveSheet
Dim loLetzte As Long
Dim loI As Long
loLetzte = IIf(IsEmpty(Cells(Rows.Count, 2)), Cells(Rows.Count, 2).End(xlUp).Row, Rows.Count)
For loI = 2 To loLetzte
Cells(loI, 14).FormulaLocal = "=WENN(Arbeitstage!$J$7=WAHR;atc1(c" & loI & ";d" & loI & ";Arbeitstage!funftagewochenamen);(WENN(Arbeitstage!$K$7=WAHR;atc(c" & loI & ";d" & loI & ";Arbeitstage!sechstagewochenamen);o" & loI & ")))"
Cells(loI, 14).NumberFormat = "General"
Range(Cells(loI, 14), Cells(loI, 15)).HorizontalAlignment = xlCenter
Next loI
Range(Cells(loI, 14), Cells(loI, 15)).Font.ColorIndex = 3
End With
'Worksheets("tabelle3").Activate
End Sub
welcher normalerweise auf die functionen
Function ATC1(Start, Ende, FT)
Dim C As Range
ATC1 = 0
For j = Start To Ende
If (Weekday(j) <> 1) And (Weekday(j) <> 7) Then ATC1 = ATC1 + 1
Next
For j = 1 To FT.Rows.Count
Set C = FT.Cells(j, 1)
If C >= Start And C <= Ende Then
If (Weekday(C) <> 1) And (Weekday(C) <> 7) Then ATC1 = ATC1 - 1
End If
Next j
End Function
sowie
Function ATC(Start, Ende, FT)
Dim C As Range
Dim a%, b%, i%
a = 8 - Weekday(Start)
b = Weekday(Ende) - 1
ATC = (Ende - Start) - (a + b)
ATC = ATC - (ATC / 7)
ATC = ATC + a + b
If Weekday(Start) = 1 Then ATC = ATC - 1
For i = 1 To FT.Rows.Count
Set C = FT.Cells(i, 1)
If C >= Start And C <= Ende Then
If Weekday(C) <> 1 Then ATC = ATC - 1
End If
Next i
End Function
zugreift umschreiben damit es ein einzelner code daraus wird ohne das auf die functions separat aus einem modul zugegriffen werden muß während der berechnung.
Jedoch habe ich das problem ich weiß nicht wie ich das hinbekommen kann.
kann jeden rat gebrauchen
bedanke mich schon im voraus
gruß
selo