Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1012to1016
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bereich auswählen

Bereich auswählen
29.09.2008 10:35:24
Tobias
Guten Morgen,
habe hier ein kleines Problem, bei dem ich ncoh nicht keine wirkliche Idee habe, wie ich es am besten lösen kann. Und zwar will ich aus maximal 100 Werten den CpK Wert berechnen. Machmal sind es weniger Werte und machmal sind Werte von mir händisch auf den Wert -1000 gesetzt worden. Diese Werte habe ich so sortiert, das die -1000 immer unten stehen und dann nur noch eventuelle Leerstellen kommen.
ich hoffe ihr versteht wie ich das meine...
Dazu habe ich dann folgenden Quelltext geschrieben:
Range("B105").Select
ActiveCell.FormulaR1C1 = Cpk_RT_unten 'untere Grenze des CpK-Werts
Range("B106").Select
ActiveCell.FormulaR1C1 = Cpk_RT_oben 'oberer Grenze des CpK-Werts
Range("B107").Select
ActiveCell.FormulaR1C1 = "=AVERAGE(R[-106]C:R[-7]C)"
Range("B108").Select
ActiveCell.FormulaR1C1 = "=STDEV(R[-107]C:R[-8]C)"
Range("B109").Select
ActiveCell.FormulaR1C1 = _
"=MIN((R[-2]C-R[-4]C)/(3*R[-1]C),(R[-3]C-R[-2]C)/(3*R[-1]C))"
Range("B105:B109").Select
Selection.NumberFormat = "zahl"
Selection.NumberFormat = "0.00"
Wie muss ich die Auswahl meines Bereiches bei der Berechnung von AVERAGE und STDEV abändern, dass die Werte -1000 nicht berücksichtigt werden?
Wenn ihr noch Informationen braucht, schreibt bitte.
Danke schon mal
Tobias

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bereich auswählen
29.09.2008 11:58:25
Luschi
Hallo Tobias,
wenn die Formeln in B1007:109 stehen, dann klappt das so:
Dim rg As Range, iRow As Integer
''nach der 1. Wert -1000 suchen
Set rg = ActiveSheet.Range("B1:B100").Find(-1000, , xlValues, xlWhole, xlByRows, xlNext)
If Not rg Is Nothing Then
iRow = 108 - rg.Row
Else
iRow = 7
End If
Range("B105").FormulaR1C1 = Cpk_RT_unten 'untere Grenze des CpK-Werts
Range("B106").FormulaR1C1 = Cpk_RT_oben 'oberer Grenze des CpK-Werts
Range("B107").FormulaR1C1 = "=AVERAGE(R[-106]C:R[-" & iRow & "]C)"
Range("B108").FormulaR1C1 = "=STDEV(R[-107]C:R[-" & iRow + 1 & "]C)"
Range("B109").FormulaR1C1 = _
"=MIN((R[-2]C-R[-4]C)/(3*R[-1]C),(R[-3]C-R[-2]C)/(3*R[-1]C))"
Range("B105:B109").NumberFormat = "0.00"
Range("B107").Select
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Bereich auswählen
29.09.2008 12:20:00
fcs
Hallo Tobias,
die letzte Zeile mit einem Wert verschieden von -1000 muss du in einer Schleife ermitteln und die Zeile zur Ermiitlung der Formeln anpassen.
Ungetestet schaut es dann etwa wie folgt aus, wobei du die "Select"-Anweisungen komplett weglassen kannst.
Gruß
Franz

Sub aaatest()
Dim wks As Worksheet, lngZeileLetzte As Long, lngZeile As Long
Set wks = ActiveSheet
'letzte Zeile mit Wert nicht gleich -1000 in Spalte B ermitteln
With wks
For lngZeile = 2 To 100 'Oder evtl .Cells(100, 2).End(xlUp).Row
If .Cells(lngZeile, 2).Value = -1000 Then Exit For
lngZeileLetzte = lngZeile
Next
End With
'Formeln zuweisen
Range("B105").FormulaR1C1 = Cpk_RT_unten 'untere Grenze des CpK-Werts
Range("B106").FormulaR1C1 = Cpk_RT_oben 'oberer Grenze des CpK-Werts
Range("B107").FormulaR1C1 = "=AVERAGE(R[-106]C:R[" & lngZeileLetzte - 107 & "]C)"
Range("B108").FormulaR1C1 = "=STDEV(R[-107]C:R[" & lngZeileLetzte - 108 & "]C)"
Range("B109").FormulaR1C1 = _
"=MIN((R[-2]C-R[-4]C)/(3*R[-1]C),(R[-3]C-R[-2]C)/(3*R[-1]C))"
With Range("B105:B109")
.NumberFormat = "zahl"
.NumberFormat = "0.00"
End With
End Sub


Anzeige
AW: Bereich auswählen
30.09.2008 12:14:52
Luschi
Hallo Tobias,
hier mal eine kleine Beispieldatei. Die 9 Varianten habe ich mal in 1 For-Schleife gepackt.
https://www.herber.de/bbs/user/55740.xls
Gruß von Luschi
aus klein-Paris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige