Excel VBA Marko für automatisierte Mittelwert/Summen- Berechnung....?

15/06/2014 - 12:24 von pascal.sabellek | Report spam
Hallo Excel Pros!

Ich armer Sünder, soll einen Haufen an Excel Tabellen automatisiert auswerten.

Wahrscheinlich ist das Ganze einfach zu lösen, aber mit den Makros betrete ich Neuland, deshalb frage ich mal lieber Menschen, die davon mehr Ahnung haben, um den Frust ein wenig abzuschwàchen:

Ich habe in der Spalte A eine Nummerierung von 1 -15 dies wiederholt sich unregelmàssig oft. D.h. manchmal habe ich 12 von diesen 15er Sàtzen, manchmal nur 10.

Jeder Nummerierten Zeile ist ein Wert zugeordnet, der meinentwegen in der Spalte B daneben steht.

Jetzt möchte ich, dass Excel mir auf Knopfdruck jeweils den Mittelwert und die Summe der Werte 1-15 ausgibt und sie mir am besten in Spalte C und D neben den Wert 15 schreibt.

Das ganze soll er halt jeweils mit den Werten 1-15 machen, bis die Tabelle abgearbeitet ist.


Ich hoffe, mein Anliegen ist klar geworden, ich scheitere daran, dass dies ja nicht einfach nur das Aufnehmen eines Markos gelöst ist, weil ja jede Tabelle andere 15er Blöcke hat und Excel ja permanent über Schleifen kontrollieren muss, ob da noch was kommt.


HERZLICHEN DANK für eure Hilfe und noch einen schönen Sonntag!

pascal
 

Lesen sie die antworten

#1 Claus Busch
15/06/2014 - 12:48 | Warnen spam
Hallo Pascal,

Am Sun, 15 Jun 2014 03:24:32 -0700 (PDT) schrieb
:

Ich habe in der Spalte A eine Nummerierung von 1 -15 dies wiederholt sich unregelmàssig oft. D.h. manchmal habe ich 12 von diesen 15er Sàtzen, manchmal nur 10.

Jeder Nummerierten Zeile ist ein Wert zugeordnet, der meinentwegen in der Spalte B daneben steht.



probiers mal so:

Sub Sum_Avg()
Dim LRow As Long
Dim i As Long
Dim rngC As Range

For i = 1 To Sheets.Count
With Sheets(i)
LRow = .Cells(Rows.Count, 1).End(xlUp).Row
.Range("D1:F1") = Array("Num", "Summe", "Mittelwert")
.Range("D2") = 1
.Range("D2").AutoFill Destination:=.Range("D2:D16"),
Type:=xlFillSeries
For Each rngC In .Range("D2:D16")
rngC.Offset(, 1) = WorksheetFunction.SumIf(.Range("A1:A" &
LRow), _
rngC, .Range("B1:B" & LRow))
rngC.Offset(, 2) = WorksheetFunction.AverageIf(.Range("A1:A"
& LRow), _
rngC, .Range("B1:B" & LRow))
Next
End With
Next
End Sub


Mit freundlichen Grüßen
Claus
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional

Ähnliche fragen