Hocam manuel olarak dosyaya eklerim
Çalışma sayfasının modül kısmına yapıştırın, sayfanın ismi yanlış ise düzeltin, G1hücre değerini değiştirip deneyin
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.Range("G1")) Is Nothing Then
VeriGruplamaVeOrtalama
End If
End Sub
Sub VeriGruplamaVeOrtalama()
Dim ws As Worksheet
Dim veriRange As Range, hücre As Range
Dim grup1Ortalama As Double, grup2Ortalama As Double
Dim grup1Sayac As Integer, grup2Sayac As Integer
Set ws = ThisWorkbook.Sheets("Sayfa1")
Dim G1Degeri As Variant
G1Degeri = ws.Range("G1").Value
If IsNumeric(G1Degeri) Then
G1Degeri = CDbl(G1Degeri)
Else
MsgBox "G1 hücresinde sayısal bir değer bulunamadı!"
Exit Sub
End If
Set veriRange = ws.Range("A1:A100")
grup1Ortalama = 0
grup2Ortalama = 0
grup1Sayac = 0
grup2Sayac = 0
For Each hücre In veriRange
If IsNumeric(hücre.Value) Then
If hücre.Value < G1Degeri Then
grup1Ortalama = grup1Ortalama + hücre.Value
grup1Sayac = grup1Sayac + 1
Else
grup2Ortalama = grup2Ortalama + hücre.Value
grup2Sayac = grup2Sayac + 1
End If
End If
Next hücre
If grup1Sayac > 0 Then grup1Ortalama = grup1Ortalama / grup1Sayac
If grup2Sayac > 0 Then grup2Ortalama = grup2Ortalama / grup2Sayac
MsgBox "G1'den küçük olan grup ortalama: " & grup1Ortalama & vbCrLf & _
"G1'den büyük olan grup ortalama: " & grup2Ortalama
End Sub