Gemiddelde van willekeurige range.

Status
Niet open voor verdere reacties.

Dworkin

Gebruiker
Lid geworden
2 mrt 2007
Berichten
29
Ik zou van een bepaalde range het gemiddelde willen berekenen door dit te programmeren in Visual basic. Het lukt me echt niet om de range waarop de bewerking moet gebeuren random te maken, het lukt enkel met een vaste range. Iemand hier een oplossing of sugestie voor?
 
Heb ik eventjes geschreven:

Code:
Sub voorbeelden()

Dim resultaat As Double

resultaat = WorksheetFunction.Average(Range("B3:F5"))

resultaat = WorksheetFunction.Average(Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row))

resultaat = WorksheetFunction.Average(Rows(5))

resultaat = WorksheetFunction.Average(Columns(12).SpecialCells(xlCellTypeVisible))

resultaat = WorksheetFunction.Average(Range("C34").CurrentRegion)

End Sub

Wigi
 
Deze range wordt bepaald door filtering. Ik heb een hele hoop gegevens. Ik moet dan de gegevens kunnen selecteren(om later te bewerken en grafieken en zo) waarvan hun waarde aan enkele voorwaarden voldoen: Stabiel zijn(max 0.003 verschillen) en +- 1 van de referentie waarde zijn.

Ik kan deze waarde al wel late wegfilteren, en dan hiervan een grafiek laten maken. Maar nu zou ik ook van deze waarden het gemiddelde willen nemen, maar dat lukt me maar niet.
Voor het maken van de grafiek gebruik ik dit om mijn range te bepalen:

Set r1 = Range(Cells(intBegin, 1), Cells(intEinde, 1))
Set r2 = Range(Cells(intBegin, 8), Cells(intEinde, 8))
Set r3 = Range(Cells(intBegin, 9), Cells(intEinde, 9))
Set myMultiAreaRange = Union(r1, r2, r3)
myMultiAreaRange.Select
Charts.Add

Maar wanneer ik dan deze range(hierboven dus myMultiAreaRange) wil gebruiken de formule:

ActiveCell.FormulaR1C1 = "=AVERAGE( myMultiAreaRange)"

lukt dit dus niet en krijg ik een fout.
 
Werkt dit wel?

Code:
ActiveCell.Formula = "=AVERAGE(" & Range("myMultiAreaRange").Address & ")"
 
Neen, ik krijg fout:
Runtime error '1004'

methode'range' of object '_global' failed

als ik dit gebruik als command
r2 en myMultiAreaRange zijn Dim as range.

intBegin = Range("N1")
intEinde = intBegin + 60
Set r2 = Range(Cells(intBegin, 8), Cells(intEinde, 8))
Set myMultiAreaRange = r2
Cells(intBegin, 10).Select
ActiveCell.Formula = "=AVERAGE(" & Range("myMultiAreaRange").Address & ")"
 
En dit?

Code:
intBegin = Range("N1")
intEinde = intBegin + 60
Set r2 = Range(Cells(intBegin, 8), Cells(intEinde, 8))
Set myMultiAreaRange = r2
Cells(intBegin, 10).Formula = "=AVERAGE(" & myMultiAreaRange.Address & ")"

Wigi
 
yep, ZEER bedankt, had hier al veel te veel tijd aan verloren(zoals aan vele dingen al), maar dat heb je als ge nog noob bent:)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan