• DİKKAT

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

İşlem süresi mesajı

Katılım
15 Temmuz 2012
Mesajlar
2,802
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Merhaba hayırlı akşamlar.

Aşağıdaki koda salise eklemek istiyorum. Ama bir türlü başaramadım.
Yani istediğim şey mesajda İşlem süresi: 00:04:03:75 bu şekilde görünmesini istiyorum.


Kod:
Sub AliVeli()
zaman = TimeValue(Now)

'.kodlarınız

MsgBox "İşlem Süresi  : " & CDate(TimeValue(Now) - zaman)
End Sub
 
Zaman farkında salise yoktur. Bu duyarlılığı "timer" fonksiyonu ile alabilirsiniz.

Aşağıdaki zaman farkı fikir verecektir.
Kod:
t1 = time

kodlar...

t2 = time
msgbox "işlem süresi : " & format(t2 - t1, "hh:mm:ss")
 
Sayın Zeki Bey ilginiz için çok teşekkür ediyorum, ancak makro'dan fazla anlamadığım için sormuştum bu soruyu.

Timer fonksiyonu ile alabilirsiniz demişsiniz nasıl yani?
 
Mantık aynı. Aşağıdaki gibi mesela. Sonuç saniye cinsinden gelir. Örneğin; 3,2654 gibi bir değer.

Kod:
[SIZE=2]t1 = timer 

 kodlar... 
t2 = timer 

msgbox "işlem süresi : " & t2 - t1 & " saniye"[/SIZE]
 
Sayın Zeki Bey, forumda bir kaç tane kronometre şeklinde uygulama buldum, kronometre gibi uygulansa, benim istediğim mesaja gelir mi?
 
Nasıl yani? Eş zamanlı mı göstermeli?

Bu biraz da kodlamaya bağlı hazırlanacak birşey...
 
Kronometre makrosunu çalıştırdığımda saat-dakika-saniye-salise uygulaması vardı.

Bende bu kronometre makrosundaki gibi çalıştırdığımda işlem bittiğinde ekrana gelen uyarı mesajında İşlem süresi : 00:10:15:75 gibi olmasını istemiştim.
 
Sayın Zeki Bey uyarı mesajına 00:10:15:75 bu şekilde bir bilgi getirilemez mi?
 
Bahsettiğiniz kroneometre örneği muhtemelen Timer API örneğidir. Buradaki kullanım prensibi farklı.

Timer fonksiyonu sonucu gelen saniye cinsinden değeri istediğiniz 00:00:00,00 formatına çevirebilirsiniz.
 
Saniyeyi kronometre formatına çeviren özel bir fonksiyon yazdım.

Aşağıdaki kodu deneyin. (3 -4 sn. bekleyin.)

Kod:
Sub test()
    t1 = Timer
    
    For i = 1 To 100000
        DoEvents
    Next
    
    t2 = Timer
    
    MsgBox t2 - t1 & " - " & SaniyedenSaat(t2 - t1)
End Sub

Function SaniyedenSaat(ByVal zaman As Double) As String
    h = zaman \ 3600        ' saat
    m = (zaman - h * 3600) \ 60 ' dakika
    s = Fix((zaman - (h * 3600) - (m * 60)))
    ss = (zaman - (h * 3600) - (m * 60) - s) * 100
    
    h = Format(h, "00") & ":"
    m = Format(m, "00") & ":"
    s = Format(s, "00") & ":"
    ss = Format(ss, "00")
    
    SaniyedenSaat = h & m & s & ss
End Function
 
Zeki Bey ellerinize sağlık süper oldu kod gayet güzel çalışıyor, işlem yaptırdığım makromun işlemi ne kadar sürede yaptığını mesajda yazmasını istiyorum.

Bu kodu işlem yaptırdığım makroma nasıl uygulamam gerekiyor.

Örneğin.

Kod:
Sub AliVeli()

test

. kendi makro kodlarım

MsgBox t2 - t1 & " - " & SaniyedenSaat(t2 - t1)

End Sub

Bu şekilde mi yazmam gerekir.
 
Aşağıdaki gibi. "Test" isimli prosedur olmayacak; adı üstünde "test". :)

Kod:
Sub AliVeli()

    t1 = Timer
    
    . kendi makro kodlarım
    
    t2 = Timer
    
    MsgBox  SaniyedenSaat(t2 - t1)

End Sub
 
Zeki Bey kusura bakmayın sizi uğraştırıyorum, gerçekten sizin dediğiniz gibi kendi kodlarımın arasına bu kodu uyguladım, -22:-23:-17:-91 şeklinde bir sonuç üretti.

Sizin aşağıda yazmış olduğunuz kodlar arasında siyahla belirmiş olduğum yeri kendi kodlarımın neresine yerleştirmem gerekiyor.

Sub test()
t1 = Timer

For i = 1 To 100000
DoEvents
Next


t2 = Timer

MsgBox t2 - t1 & " - " & SaniyedenSaat(t2 - t1)
End Sub
 
Sayın Zeki Bey aşağıdaki gibi de uyguladım, yine olmadı?

Sub AliVeli()

t1 = Timer
For i = 1 To 100000
DoEvents
Next

. kendi makro kodlarım

t2 = Timer

MsgBox t2 - t1 & " - " & SaniyedenSaat(t2 - t1)

End Sub
 
Bu, beklenmeyen bir durum. "t2 - t1" farkı kaç saniye çıktı?

Ya da gerçek proseduru buraya ekler misiniz?

Bu arada "14" nolu mesaja dikkat edin.

.
 
Kod arasındaki

For i = 1 To 100000
DoEvents
Next

bu kodu aşağıdaki gibi yaptım yine olmadı.


Kod:
Sub AliVeli()

t1 = Timer
For i = 1 To 100000
DoEvents
Next

. kendi makro kodlarım

t2 = Timer

MsgBox t2 - t1 & " - " & SaniyedenSaat(t2 - t1)

End Sub
 
Sayın Zeki Bey kusura bakmayın Timer yazısını kendi makroma yanlış aktarmışım, tam istediğim gibi oldu şimdi düzeldi.

Ellerinize sağlık çok teşekkür ediyorum, hayırlı geceler diliyorum.
 
Geri
Üst