• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Makro ile ortalama hesaplama

Katılım
11 Aralık 2004
Mesajlar
419
Excel Vers. ve Dili
Ms Office Pro Plus 2019
merhaba arkadaşlar, sabit olmayan fakat makro ile yerini tespit ettiğim hücrede ortalama bulmam gerekiyor.
ortalama
hücreye makro ile formül atama ile veya
direkt bulunan ortalama değerinin yazdırılması şeklinde de olabilir.

ben her iki yöntemi de denememe rağmen bir türlü çözüm bulamadım.
ortalamanın yazdırılacağı hücre sabit olsa
ActiveCell.FormulaR1C1 = "=AVERAGE(RC[-4]:RC[-1])"
şeklinde yazdırıyorum. fakat [-4] değerinin değişken olması nedeni ile bir türlü işin içinden çıkamadım.

Sub ortalama_hesapla()
ss = WorksheetFunction.CountA(Sheets("ym").Rows(7))
Cells(8, ss + 1).Select
ActiveCell.FormulaR1C1 = "=AVERAGE(RC[-4]:RC[-1])"
' a = WorksheetFunction.Average([p:g8])
' b = Round(WorksheetFunction.Average(Cells(7, y + 2)), 2)


Range("I8").Select
ActiveCell.FormulaR1C1 = "=RC[-1]*RC[-6]"
Range("I9").Select
End Sub

Dosya ektedir. yardımlarınız için şimdiden teşekkürler. saygılarımla...
 

Ekli dosyalar

Son düzenleme:
Dosyanız ektedir.:cool:
Kod:
Sub ortalama()
Dim sat As Long, i As Long
sat = Sheets("ym").Cells(65536, "B").End(xlUp).Row
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Sheets("ym").Range("H8:H" & sat).ClearContents
For i = 8 To sat
    Sheets("ym").Cells(i, "H").Formula = "=average(D" & i & ":G" & i & ")"
Next
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
MsgBox "ortlama formülü girildi." & vbLf & _
"evrengizlen@hotmail.com", vbOKOnly + vbInformation, "E V R E N"
End Sub
 

Ekli dosyalar

evren hocam öncelikle çok teşekkür ederim. kodlarınız işlem gördü. fakat bir eksiklik var.
o da formülün yazılacağı hücrenin yeri 6.veya 7. satırdaki en son dolu hücreye göre tespit ediliyor. yani "k7" hücresi dolu iken "k8" boş olabiliyor. bu nedenle formülün yazılacağı yer "L8" hücresi değil "L9" olacaktır.
 
evren hocam öncelikle çok teşekkür ederim. kodlarınız işlem gördü. fakat bir eksiklik var.
o da formülün yazılacağı hücrenin yeri 6.veya 7. satırdaki en son dolu hücreye göre tespit ediliyor. yani "k7" hücresi dolu iken "k8" boş olabiliyor. bu nedenle formülün yazılacağı yer "L8" hücresi değil "L9" olacaktır.
Anlamadım .
Bu sizin yolladığınız dosya. K7 ,K8,L7 L8 ile ne alakası var.
Siz daha önceden averaj formülünü H sütununa yazmışsınız bende ayni sütuna yazdırdım.
Ayrıca En son dolu satır B sütunna göre alınıyor.
Resme bakınız.:cool:
 
evren hocam sanırım derdimi anlatamadım.
ss = WorksheetFunction.CountA(Sheets("ym").Rows(7))
b = Round(WorksheetFunction.Average(Range("cells(8,4):cells(8,ss)")), 2)
istedeğim bunun gibi bir şeydi. 5 saattir uğraşıyorum.
kusura bakma hocam
 
Son düzenleme:
Geri
Üst