Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
23.11.2016 14:37:37 |
Conrad |
|
|
|
26.11.2016 22:16:11 |
Mackie |
|
|
|
27.11.2016 10:33:41 |
Gast34625 |
|
|
VBA: Blockweise Mittelwert bilden und in neue Tabelle |
27.11.2016 11:12:29 |
Gast34625 |
|
|
|
27.11.2016 12:03:40 |
Mackie |
|
|
Von:
Gast34625 |
Datum:
27.11.2016 11:12:29 |
Views:
876 |
Rating:
|
Antwort:
|
Thema:
VBA: Blockweise Mittelwert bilden und in neue Tabelle |
Hallo Conrad,
hier mal ein Ansatz. Schau ihn dir an und versuche ihn nachzuvollziehen. Bei Unklarheiten einfach fragen.
Hier noch ein Beispiel zur Ausgabe mittels Debug.Print:
Option Explicit 'erzwingt Deklaration aller verwendeten Variablen
Sub Mittelwert()
Dim rngZielblattZelle As Excel.Range
Dim rngBasisBereich As Excel.Range
Dim rngBereich As Excel.Range
Dim i As Long
With tblZieldaten
'letzte belegte Zelle in Zielblatt Spalte A (von unten aus) suchen
Set rngZielblattZelle = .Cells(.Rows.Count, "A").End(xlUp)
'wir brauchen die leere Zelle unter der gefundenen Zelle
If Trim$(rngZielblattZelle.Value) <> "" Then Set rngZielblattZelle = rngZielblattZelle.Offset(1)
End With
With tblBasisdaten
'Hier wird davon ausgegangen, dass die Daten in Spalte A, sowie in Zeile 1 unterbrechungsfrei (!!)
'mit Inhalt befüllt sind, um so den >vollständigen< Datenbreich zu ermitteln.
Set rngBasisBereich = .Range(.Range("A1").End(xlDown), .Range("A1").End(xlToRight))
End With
For i = 1 To WorksheetFunction.RoundUp(rngBasisBereich.Rows.Count / 6, 0)
'den für die Mittelwertsbildung zu betrachenden Bereich referenzieren
Set rngBereich = rngBasisBereich.Resize(6).Offset(6 * (i - 1))
'die nachfolgende Codezeile kann man auskommentieren oder löschen. Sie dient nur
'zur Veranschaulichung.
Debug.Print rngBereich.Address(0, 0); Tab(12); " | Mittelwert = " & WorksheetFunction.AverageIf(rngBereich, ">0"); Tab(50); " -> " & rngZielblattZelle.Address(0, 0, External:=True)
'Mittelwert bilden und in die Zieltabelle schreiben
rngZielblattZelle.Value = WorksheetFunction.AverageIf(rngBereich, ">0")
'Zelle für nächsten Mittelwert referenzieren
Set rngZielblattZelle = rngZielblattZelle.Offset(1)
Next
End Sub
Gruß
|
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Bitte geben Sie ein aussagekräftiges Thema an.
Bitte geben Sie eine gültige Email Adresse ein!
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
23.11.2016 14:37:37 |
Conrad |
|
|
|
26.11.2016 22:16:11 |
Mackie |
|
|
|
27.11.2016 10:33:41 |
Gast34625 |
|
|
VBA: Blockweise Mittelwert bilden und in neue Tabelle |
27.11.2016 11:12:29 |
Gast34625 |
|
|
|
27.11.2016 12:03:40 |
Mackie |
|
|