Hallo!
Ich hab zb eine Liste wie im Anhang.
Ich möchte nun in der linken Spalte (besteht aus drei Spalten, in der rechten davon soll der Wert) das Max der jeweils zugehörigen untergeordneten rechten Spalten (besteht aus drei Spalten, ganz rechts der Wert) .
Die Zeilenanzahl ist variabel.
Mein code haut soweit hin, nur dass die rechten Spalten davor schon befüllt sein müssten. Dem ist aber nicht so.
Dh icht müsste das Max mit Formula eingeben. Das haut aber nicht hin...
zB
Cells(g, 18).Formula = "=MAX(C12:C45)"
Aber der Bereich soll ja mit dem Code erst rausgesucht werden, also kann ich ihn so nicht schon vordefinieren...
Hat da von euch jemand einen Rat?
Danke
Susi
Ich hab zb eine Liste wie im Anhang.
Ich möchte nun in der linken Spalte (besteht aus drei Spalten, in der rechten davon soll der Wert) das Max der jeweils zugehörigen untergeordneten rechten Spalten (besteht aus drei Spalten, ganz rechts der Wert) .
Die Zeilenanzahl ist variabel.
Mein code haut soweit hin, nur dass die rechten Spalten davor schon befüllt sein müssten. Dem ist aber nicht so.
Dh icht müsste das Max mit Formula eingeben. Das haut aber nicht hin...
zB
Cells(g, 18).Formula = "=MAX(C12:C45)"
Aber der Bereich soll ja mit dem Code erst rausgesucht werden, also kann ich ihn so nicht schon vordefinieren...
Hat da von euch jemand einen Rat?
Danke
Susi
Visual Basic-Quellcode
- Sub test()
- Dim g, i, max As Integer
- Dim Rangemax As Range
- g = 0 'Zeile
- '-----------------------
- Do 'Zeilen im Abstand von 3 durchsuchen
- i = 0
- g = g + 3
- '-----------------------------------------------
- If Cells(g, 16) <> "" Then 'wenn in Zeile was drinnensteht dann
- i = g
- Do
- i = i + 3 'zu der Zeile im Abstand von 3 runtersuchen bis wieder was drinnensteht
- Loop Until Cells(i, 16) <> "" Or i = 600 'Suchen bis wieder was drinnensteht oder 600 Zeilen
- End If
- '-----------------------------------------------
- If i = g + 3 Or i = 0 Then 'Ist in der nächsten Zeile schon was, dann nichts machen. Oder wenn i=0 dh wenn Spalte leer.
- Else 'sonst das max der rechts davon liegenen Spalten
- max = WorksheetFunction.max(Range(Cells(g + 3, 21), Cells(i - 3, 21)))
- Cells(g, 18) = max
- End If
- '-----------------------------------------------
- Loop Until g = 600 'bis max 600 Zeilen runtersuchen
- '-----------------------
- End Sub