ich hab folgendes Problem und wäre dankbar wenn jemand dafür eine Lösung kennt:
In einer Tabelle in der sich in "A3:49" das Mitarbeiteralter und in "B3:49" die Anzahl der Mitarbeiter in diesem Alter befindet, berechnet mir ein Makro den Median und gibt diesen in C56 aus.
Nun hätte ich gerne, dass dieses Makro automatisch ausgeführt wird, wenn Daten in der Tabelle geändert werden.
Was sich mir nicht ganz erschließt: Ein anderes Makro (?) verhält sich genau wie eine Standardexcelformel (z.b. SUMME) und ändert den Inhalt einer Zelle - vielleicht könnte mir auch jemand erklären warum das so ist und wie ich ein VBA Skript / Makro gestalten muss damit das funktioniert.
Das Makro, dass den Median berechnet:
Sub MedianM()
Dim intz As Integer
Dim inti As Integer
Dim intn As Integer
intz = 3
For inti = 3 To Cells(Rows.Count, 1).End(xlUp).Row
For intn = 0 To Cells(inti, 2).Value - 1
Cells(intz + intn, 7).Value = Cells(inti, 1).Value
Next intn
intz = intz + intn
Next inti
Range("C56").FormulaR1C1 = "=MEDIAN(R[-53]C[+4]:R[600]C[+4])"
End Sub
Das folgende Makro berechnet den Mittelwert, wird aber "direkt aus der Zelle" aus aufgerufen:
Function MittelAlter(alter, anzahl)
zahl = 0
summe = 0
For j = 1 To Application.Count(alter)
zahl = zahl + anzahl(j)
summe = summe + alter(j) * anzahl(j)
Next j
MittelAlter = summe / zahl
End Function
In der Zelle gebe ich dann eben Mittelalter(wert1, wert2) ein. Der Zelleninhalt ändert sich bei Änderung der Tabellendaten. Liegt das an der unterschiedlichen definition function / sub ? Leider kenne ich mich mit sowas überhaupt nicht aus und versuche es nur irgendwie zum laufen zu bekommen.
Bin für jede Hilfe dankbar!
Gruß,
Karsten