Hallo zusammen,
ich probiere mich gerade an einem VBA-Programm zur Berechnung von Fähigkeitskennwerten. In den Zellen A1 bis A13 stehen nur Bennenungen. In meinem Fall kann der User nun in den Zellen B1-B4 Werte eintragen, wobei B2-B4 berechnungsrelevant sind => berechnete Werte werden bis jetzt in den Zellen B5-B13 ausgegeben. Ab der Zelle B15 erfolgt eine weitere Dateneingabe von unbegrenzt vielen Werten.
Folgende Sub habe ich bereits erstellt:
'Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Private Sub xyz()
Dim Spalte As Long
Dim lngEZ As Long
Dim lngLZ As Long
Dim dblOG As Double
Dim dblUG As Double
Dim dblMittelwert As Double
Dim dblStandardabweichung As Double
Dim dblMaximal As Double
Dim dblMinimal As Double
Dim dblSpannweite As Double
Dim dblcm As Double
Dim dblcmo As Double
Dim dblcmu As Double
Dim dblcmk As Double
Spalte = 2
'Leerzelle in Spalte B finden
lngEZ = Cells(10, Spalte).End(xlDown).Row + 2
lngLZ = Cells(Rows.Count, Spalte).End(xlUp).Row
'Berechnung der Variablen
dblOG = Cells(3, Spalte).Value
dblUG = Cells(4, Spalte).Value
dblMittelwert = Application.Average(Range(Cells(lngEZ, Spalte), Cells(lngLZ, Spalte)))
dblStandardabweichung = Application.StDev(Range(Cells(lngEZ, Spalte), Cells(lngLZ, Spalte))) _
_
_
dblMaximal = Application.max(Range(Cells(lngEZ, Spalte), Cells(lngLZ, Spalte)))
dblMinimal = Application.min(Range(Cells(lngEZ, Spalte), Cells(lngLZ, Spalte)))
dblSpannweite = dblMaximal - dblMinimal
dblcm = ((dblOG - dblUG) / (6 * dblStandardabweichung))
dblcmo = ((dblOG - dblMittelwert) / (3 * dblStandardabweichung))
dblcmu = ((dblMittelwert - dblUG) / (3 * dblStandardabweichung))
dblcmk = Application.min(dblcmo, dblcmu)
'In in schreiben der Variablen
Cells(5, Spalte).Value = dblMittelwert
Cells(6, Spalte).Value = dblStandardabweichung
Cells(7, Spalte).Value = dblMaximal
Cells(8, Spalte).Value = dblMinimal
Cells(9, Spalte).Value = dblSpannweite
Cells(10, Spalte).Value = dblcm
Cells(11, Spalte).Value = dblcmk
End Sub
Nun zu meinem Problem:
Ich habe eine Schaltfläche erstellt die aktuell über dem Bereich C1-C13 liegt. Bei Betätigung der Schaltfläche soll nun folgendes passieren: der Code oben soll nun auch für die Spalte C gelten (gleichzeitig aber auch in B bestehen bleiben) und die Schaltfläche in den Bereich D1- D13 "weiterrücken". Bei erneuter Betätigung soll das ganze wieder "um eine Spalte erweitert werden" usw... So lange bis der User genug Spalten zur Verfügung hat, wie er benötigt.
Ich hoffe ihr versteht was ich machen will und könnt mir weiterhelfen :D
Danke und Gruß
|