• DİKKAT

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

saati sayıya böl

Katılım
1 Ağustos 2013
Mesajlar
563
Excel Vers. ve Dili
Ofis 2016 TR 32 Bit
Merhaba Arkadaşlar ,Eklemiş olduğum dosyada , saat verilerini toplayıp veri sayısı olan 65 e bölmek istediğimde run_time error 13 hatası alıyorum .Bu hata ve çözümü noktasında desteğinizi bekliyorum ,saygılarımla..
 

Ekli dosyalar

Merhaba,

C#:
Sub bol()
    Dim sonA As Long
    Dim say As Long
   
    sonA = Sheets("d2").Cells(Rows.Count, "A").End(xlUp).Row
    say = WorksheetFunction.CountA(Range("A5:A" & sonA))
    If say > 0 Then
        Sheets("d2").Range("A3").Value = Format(WorksheetFunction.Sum(Sheets("d2").Range("A5:A" & sonA)) / say, "hh:mm:ss")
    Else
    End If
End Sub
 
RBozkurt ilginize çek teşekkürler , bu konu ile bir soru daha sorucam müsadenizle gerçek dosyada 17*6:102 sütun mevcut ben bunlardan bir kısmını yükleyip tekrar gönderiyorum dosyamı ,sıkıntım şu veri fazla olunca bekleme süresi, fazlalaşıyor ,daha kısa bir kodla yapmak mümkünmü
 

Ekli dosyalar

Sütunlar sabit mi değişlen mi? Paylaştığınız şekilde sabitse..
 
Deneyiniz,

Kod:
Sub bol()
Dim son As Long
Dim say As Long
Dim sütunlar As Variant
Dim sütun As Variant

sütunlar = Array("A", "B", "C", "D", "E", "G", "H", "I", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W")

For Each sütun In sütunlar
    son = Sheets("d2").Cells(Rows.Count, sütun).End(xlUp).Row
    say = WorksheetFunction.CountA(Range(sütun & "5:" & sütun & son))
    If say > 0 Then
        Sheets("d2").Range(sütun & "3").Value = Format(WorksheetFunction.Sum(Sheets("d2").Range(sütun & "5:" & sütun & son)) / say, "hh:mm:ss")
    Else
    End If
Next sütun

End Sub
 
Merhaba,
Sn RBozkurt ,Verdiğiniz kodu dosyama uyarladım .Ayrıca gerçek dosyadaki gibi de dosyamı yeniledim . 102 sütun var ve kod ağır çalışıyor. Mümkünse son haline bakabilir misiniz ?
 

Ekli dosyalar

En başta 102 sütün paylaşsanız da bizde her defa sil başa dönmesek :D
 
Haklısınız ,acemi de sayılmam artık ama biraz üşengeçlik oldu diyelim ,inş. bundan sonra daha dikkatli olmaya çalışacağım ,yine de uyarınız için teşekkürler.
 
Dolu sütunu 5. satırdan kontrol ederek işlem yapar.
Çalışma hızı 1sn altında.

Kod:
Sub bol()
Dim sonA As Long
Dim say As Long
Dim sonSutun As Long

sonSutun = Sheets("d2").Cells(5, Columns.Count).End(xlToLeft).Column

For i = 1 To sonSutun
    sonA = Sheets("d2").Cells(Rows.Count, i).End(xlUp).Row
    say = WorksheetFunction.CountA(Sheets("d2").Range(Sheets("d2").Cells(5, i), Sheets("d2").Cells(sonA, i)))
    If say > 0 Then
        Sheets("d2").Cells(3, i).Value = Format(WorksheetFunction.Sum(Sheets("d2").Range(Sheets("d2").Cells(5, i), Sheets("d2").Cells(sonA, i))) / say, "hh:mm:ss")
    End If
Next i

End Sub
 
Son düzenleme:
for döngüsünü 8 den başlatınca oldu.Eline emeğine sağlık RBozkurt ,Teşekkürler
 
Kolay gelsin, iyi çalışmalar.
 
Geri
Üst