Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Excel - VBA: Variable Zellbezüge





Frage

Hallo! Habe ein Problem beim erstellen der Makros für eine Excel Tabelle! Habe eine Tabelle mit Messwerten (2er Paare) insgesamt sind es 3 Messungen, also 3*2 Spalten, die 2er Spalten sind immer unterschiedlich lang. Nun meine Frage: Ich soll die Spalten miteinander vergleichen und den Mittelwert bzw. die Streuung aufzeigen. Das will ich in 2 weiteren Spalten mit einem VBA-Makro machen. Das VBA-Marko soll Beispielsweise in der Mittelwert Spalte ungefähr so aussehen(ich schreib jetzt einfach mal so ungefähr wie es aussehen sollte ohne wirkliche Programmiersprache): start Laufe Zellen durch von D4-Ende der Tabelle für jede zelle solange in Zelle A der gleichen Zeile eine Zahl ist dann solange in Zelle B der gleichen Zeile eine Zahl ist dann solange in Zelle C der gleichen Zeile eine Zahl ist Mittelwert(A(gleiche zeile), B(gleiche Zeile), C(gleiche Zeile)) sonst Mittelwert(A(gleiche zeile), B(gleiche Zeile) sonst Mittelwert(A(gleiche zeile)) ende Hoffe jemand kapiert, wie ich es meine und kann mir weiterhelfen, habe bisher nirgends einen vergleiochbaren Quelltext gefunden, den man umschreiben könnte! Danke, Henrik

Antwort 1 von rainberg

Hallo Hendrik,

ein Zahlenbeispiel wäre hier wohl nützlicher als der verwirrende Text.

Gruss
Rainer

Antwort 2 von Saarbauer

Hallo,

versuch es mal hiermit

Sub Mittelwert ()
    letzteZeile = Range("D65536").End(xlUp).Row
    For i = 4 To letzteZeile
	     j = 0
	     mw = 0
                 If  IsNumeric(Range("A" & i).Value )  Then
		j = j +1
		mw = mw + Range("A" & i).Value
	     End If
                 If  IsNumeric(Range("B" & i).Value )  Then
		j = j +1
		mw = mw + Range("B" & i).Value
	     End If
                 If  IsNumeric(Range("C" & i).Value )  Then
		j = j +1
		mw = mw + Range("C" & i).Value
	     End If
   	     mw = mw / j
    Next i
End Sub


ist aber ungetestet

Gruß

Helmut

Antwort 3 von Saarbauer

Hallo,

eins vergessen

mw = mw / j

an dieser Stelle ist deine Zelle für den Mittelwert einzusetzen

Range("????" & i).Value = mw / j

etwa so

Gruß

Helmut

Antwort 4 von rainberg

Hallo Henrik,

falls Deine Messwerte in den Spalten A bis C, beginnend in Zeile 4, stehen, schreibt Dir folgendes Makro die Mittelwerte der Zeilen in Spalte D.

Option Explicit

Sub Mittelwert()
   Dim intI As Integer
   For intI = 4 To ActiveSheet.Range("A:C").Find("*", searchdirection:=xlPrevious).Row
      Cells(intI, 4).Value = _
      WorksheetFunction.Sum(Range("A" & intI & ":C" & intI)) / _
      WorksheetFunction.Count(Range("A" & intI & ":C" & intI))
   Next
End Sub


Gruss
Rainer

Antwort 5 von rainberg

Hallo Hendrik,

bei meinem Code hatte ich scheinbar Tomaten auf den Augen.
Ohne Umweg lautet er wie folgt:

Option Explicit

Sub Mittelwert()
   Dim intI As Integer
   For intI = 4 To ActiveSheet.Range("A:C").Find("*", searchdirection:=xlPrevious).Row
      Cells(intI, 4).Value = WorksheetFunction.Average(Range("A" & intI & ":C" & intI))
   Next
End Sub


Gruss
Rainer

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: