• DİKKAT

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

Userform Üzerinde Veri Ortalamaları Almak

Katılım
18 Kasım 2012
Mesajlar
423
Excel Vers. ve Dili
Microsoft Office 365
Merhabalar,

Ekte paylaşmış olduğum çalışma kitabında user form üzerinde (aşağıdaki örnekteki gibi) hareket ve varış noktaları yazıldığında seçilen tarih aralıklarına istinaden süre ve tüketim başlıklarında artimetik ortalamalar alabilmem için nasıl bir kod yazmam gerekir?


Ekli dosyayı görüntüle 252099

Konuyla ilgili yardımcı olabilecek arkadaşlar var ise çok memnun olurum.

Yardımları için şimdiden herkese çok teşekkür ederim.

Saygılarımla,
 

Ekli dosyalar

Son düzenleme:
Merhaba,

Aşağıdaki kodu kendi dosyanıza uyarlayabilirsiniz. Nesnelerin hepsinin dolu olacağını varsaydım..

C++:
Private Sub CommandButton1_Click()
    Dim S1 As Worksheet
    
    Set S1 = Sheets("LISTE")
    
    Me.Label7 = WorksheetFunction.AverageIfs(S1.Range("D:D"), S1.Range("A:A"), ">=" & CLng(CDate(TextBox1)), S1.Range("A:A"), "<=" & CLng(CDate(TextBox2)), S1.Range("B:B"), TextBox3, S1.Range("C:C"), TextBox4)
    Me.Label7 = Format(Me.Label7, "hh:mm:ss")
    Me.Label8 = WorksheetFunction.AverageIfs(S1.Range("E:E"), S1.Range("A:A"), ">=" & CLng(CDate(TextBox1)), S1.Range("A:A"), "<=" & CLng(CDate(TextBox2)), S1.Range("B:B"), TextBox3, S1.Range("C:C"), TextBox4)
    Me.Label8 = Format(Me.Label8, "#,##0.00")

    Me.Label9 = WorksheetFunction.AverageIfs(S1.Range("D:D"), S1.Range("A:A"), ">=" & CLng(CDate(TextBox1)), S1.Range("A:A"), "<=" & CLng(CDate(TextBox2)), S1.Range("B:B"), TextBox5, S1.Range("C:C"), TextBox6)
    Me.Label9 = Format(Me.Label9, "hh:mm:ss")
    Me.Label10 = WorksheetFunction.AverageIfs(S1.Range("E:E"), S1.Range("A:A"), ">=" & CLng(CDate(TextBox1)), S1.Range("A:A"), "<=" & CLng(CDate(TextBox2)), S1.Range("B:B"), TextBox5, S1.Range("C:C"), TextBox6)
    Me.Label10 = Format(Me.Label10, "#,##0.00")

    Me.Label11 = WorksheetFunction.AverageIfs(S1.Range("D:D"), S1.Range("A:A"), ">=" & CLng(CDate(TextBox1)), S1.Range("A:A"), "<=" & CLng(CDate(TextBox2)), S1.Range("B:B"), TextBox7, S1.Range("C:C"), TextBox8)
    Me.Label11 = Format(Me.Label11, "hh:mm:ss")
    Me.Label12 = WorksheetFunction.AverageIfs(S1.Range("E:E"), S1.Range("A:A"), ">=" & CLng(CDate(TextBox1)), S1.Range("A:A"), "<=" & CLng(CDate(TextBox2)), S1.Range("B:B"), TextBox7, S1.Range("C:C"), TextBox8)
    Me.Label12 = Format(Me.Label12, "#,##0.00")

    Set S1 = Nothing
End Sub
 
@Korhan Ayhan hocam merhaba,

Farklı farklı hatalar alıyorum.

252113

Nesnelerin hepsinin dolu olmama durumu var. Başka bir husus ise "E" sütunundaki veriler saat değil sayı olarak görünecek.

Örnek vermek gerekirse Label 7 de saat iken "02:45"Label 8 de sayı biçiminde 1.245 olacak. Hatta Sayı biçiminin yanına Lt. ekleyebilirsek süper olur.

Buna göre kodlarda nasıl bir değişikliğe gitmeliyim ?

Saygılarımla,
 
Son düzenleme:
Nesnelerin dolu olmama durumlarını IF sorguları ile denetleyebilirsiniz. Bu konuyla ilgili forumda araştırma yapabilirsiniz.

Saat olarak görünmemesi gereken Label nesnelerini saat formatına çeviren biçimlendirme satırlarını silebilirsiniz.
 
Üstteki mesajımda Tüketim Label nesnelerinin biçimini düzenledim. Dilerseniz bu halini deneyebilirsiniz.
 
@Korhan Ayhan hocam teşekkürler.

Boş olan nesnelerin hatası için kod aralıklarına if ekleyerek sonrasında end if ile bitirsem yeterli olmaz mı?

Saygılarımla,
 
Kullanımını çok önermesekte aşağıdaki satırın hemen altına On Error Resume Next satırını ekleyip hataları geçiştirebilirsiniz.

Set S1 = Sheets("LISTE")
 
Geri
Üst