• DİKKAT

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

Mesajı Dakika.Saniye Formunda Göstermek

Alttaki hibi bir kod vardı kafadan yazdım, belki yanlışlık olabilir.

C#:
dim tmer as double
tmer = timer

.......
msgbox(format(timer-tmer)/86400,"hh:mm:ss")
 
Salise için ise 86400 ü silip 60 ile çarpıp sonucu 86400 ile değiştirin ve hh:mm:ss,ms ile değiştirin.
Denemeden yazdım sonuç nedir bilmiyorum :)
 
Alttaki hibi bir kod vardı kafadan yazdım, belki yanlışlık olabilir.

C#:
dim tmer as double
tmer = timer

.......
msgbox(format(timer-tmer)/86400,"hh:mm:ss")
Üstad teşekkürler, koda yapıştırınca
msgbox(format(timer-tmer)/86400,"hh:mm:ss")[
satırı kırmızı çıkıyor.
 
Hücreyi 19. mesajda bahsettiğim gibi biçimlendirdiniz mi?

.
Haluk üstadım yardımların için teşekkür ediyorum. Şöyle bir sorun oluyor. Koddan dolayı değil de şöyle
Örneğin 05:22,920 olarak çıkıyor. Yani salise kısmı 60 lık düzende değil de, 100 lük düzende çıkıyor. Bu kısmı çözemedim :(
 
Haluk üstadım yardımların için teşekkür ediyorum. Şöyle bir sorun oluyor. Koddan dolayı değil de şöyle
Örneğin 05:22,920 olarak çıkıyor. Yani salise kısmı 60 lık düzende değil de, 100 lük düzende çıkıyor. Bu kısmı çözemedim :(

Zaten doğrusu o şekilde arkadaşım....

Adı üzerinde, "milisaniye"...... adından da anlaşıldığı üzere; 1000 milisaniye = 1 saniyedir. Dolayısıle, formatın o kısmı 1000'lik biçimindedir.

Yani;

01:38:18,901

01:38:18,902

01:38:18,903

......
...
..

01:18:38,999

01:18:39,000

01:38:39,001

01:38:39,002

....
..


diye devam eder, gider.....


.
 
Son düzenleme:
Zaten doğrusu o şekilde arkadaşım....

Adı üzerinde, "milisaniye"...... adından da anlaşıldığı üzere; 1000 milisaniye = 1 saniyedir. Dolayısıle, formatın o kısmı 1000'lik biçimindedir.

Yani;

01:38:18,901

01:38:18,902

01:38:18,903

......
...
..

01:18:38,999

01:18:39,000

01:38:39,001

01:38:39,002

....
..


diye devam eder, gider.....


.
Haklısın üstad. Googleda araştırdım. 1 saniye = 60 salise diye görünce emin olamadım.
 
Arşivimden kodun orjinalini buldum süre hesaplamak içindi.
Bu kodu range olayınada dönüşür sanıyorum.
86400 ü 60 ile çarpıp ve ms ekleyip formata.

Range("o6")= Format((range("o6")) / (86400×60), "hh:mm:ss,ms")

gibi olabilir diye düşünmüştüm.
Sanırım konuyu yanlış anlamışım :)

C#:
Dim timerr As Double

timerr = Timer

MsgBox "Bitti...Süre:" & Chr(13) & Chr(13) & Format((Timer - timerr) / 86400, "hh:mm:ss"), vbInformation, "Bilgi"
 
Bu bilgi doğru zaten...... 1 saniye = 60 salise

Yani; 1 saniye = 60 salise = 1000 milisaniye

.
Çok teşekkür ederim Haluk üstadım. Şimdi bilgi netleşti, çok sağolun.
Çok sorun değil ama sadece merak ettim. Excelde 60 salise düzeninde göstermenin bir yolu var mıdır !
 
Haluk Bey,

Ben excelde ŞİMDİ fonksiyonu ile hücrede test ettim. F9 tuşuna basarak salise kısmını izlediğimde 99'a kadar sayıp tekrar 1 den başlıyor.

Bende bu sebeple önerdiğim kod da 100 ile çarptırmıştım.
 
Ekte bahsettiğim durumla ilgili olarak görseli paylaşıyorum.

212328
 
Korhan Bey,

Paylaştığınız görselde hassaslık, "salise" değil "milisaniye" seviyesinde ve bahsettiğim gibi 999'a kadar gidip, sonra sıfırlanıyor.... Bu paylaştığınız görsel beni desteklemek için miydi, yoksa başka bir tez mi öne sürdünüz.... tam anlayamadım.

Sonuçta; Windows'un Timer fonksiyonunun bile 1/20 ~ 1/15 saniye hassaslıkta çalıştığını düşünürsek, biraz boşa kürek çekiyoruz gibi geliyor bana ama, bir de işin içine API katarsak;

Kod:
Type SYSTEMTIME
    wYear As Integer
    wMonth As Integer
    wDayOfWeek As Integer
    wDay As Integer
    wHour As Integer
    wMinute As Integer
    wSecond As Integer
    wMilliseconds As Integer
End Type

Declare Sub GetLocalTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)
'
Sub Test()
    Dim tSystem As SYSTEMTIME
    GetLocalTime tSystem
   
    xHour = tSystem.wHour
    xMinute = tSystem.wMinute
    xSecond = tSystem.wSecond
    xMillisecond = tSystem.wMilliseconds
   
    MsgBox xHour & ":" & xMinute & ":" & xSecond & ":" & xMillisecond
End Sub

.
 
Haluk Bey,

Dikkat ederseniz görselde sondaki sıfır hiç değişmiyor. Ya da hassas olduğu için bizler göremiyoruz.
 
Yani.... şu anda ben de bilemedim.... :)

Sonuç olarak; 1 Saniye= 60 Salise = 1000 milisaniye olduğuna göre, eğer biz de anlık zamanı "saat : dakika : saniye : salise" formatında almak istersek, aşağıdaki gibi bir şey işimize yarar diye düşünüyorum. Bu kodla ekrana gelen sonuçta, salise kısmının 60'tan büyük çıkmaması gerekir.....

Kod:
Sub Test2()
    MsgBox Format(Time, "hh:mm:ss," & Int(Right(Format(Timer, "#0.000"), 3) * 60 / 1000))
End Sub

.
 
Geri
Üst