Sub
Verteilen()
Dim
lngLetzte
As
Long
, rngWerte
As
Range, c
As
Range
Dim
i
As
Long
, Summe
As
Double
, anzX
As
Long
, Stunden
As
Long
, x
As
Long
lngLetzte = Cells(Rows.Count, 1).
End
(xlUp).Row
Set
rngWerte = Range(Cells(2,
"B"
), Cells(2,
"I"
))
For
i = 3
To
lngLetzte
Summe = Application.SumIf(rngWerte.Offset(i - 2),
"X"
, rngWerte)
anzX = Application.CountIf(rngWerte.Offset(i - 2),
"X"
)
Stunden = Cells(i,
"J"
)
x = 0
For
Each
c
In
rngWerte.Offset(i - 2)
If
c.Value =
"X"
Then
x = x + 1
If
x < anzX
Then
c.Value = Application.Round(Stunden / Summe * Cells(2, c.Column), 0)
Else
c.Value = Stunden - Application.Sum(rngWerte.Offset(i - 2).Resize(1, c.Column - 2))
End
If
End
If
Next
c
Next
i
End
Sub