• DİKKAT

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

Kolay saat yazma

  • Konbuyu başlatan Konbuyu başlatan ÆSir
  • Başlangıç tarihi Başlangıç tarihi
Katılım
15 Ocak 2018
Mesajlar
225
Excel Vers. ve Dili
2015 TR
merhaba

tabloda biçim kategorisinden saat seçip hücreye saat yazmak istediğimde 17:00 yazmak zorundayım Bunu kolaylık olması için 17,00 veya 1700 yazdığımda bunu otomatik 17:00 yapabileceğim bir yöntem var mı?
 
İlgili sütunun Biçimini Hücre Biçimlendirmeden "ss:dd" yapın
Sayfanın kod bölümüne aşağıdakini yapıştırın. Ben "B" sütunu için yazdım. Siz kendinize göre uyarlarsınız.
C++:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, [B:B]) Is Nothing Then Exit Sub
    Application.EnableEvents = False
    Target = TimeSerial(Int(Target), 100 * (Target - Int(Target)), 0)
    Application.EnableEvents = True
End Sub

B2 ye 12,55 yazınca 12:55 olarak düzeltir
B2 ye 12,65 yazınca 12:65 olamayacağı için 13:05 olarak düzeltir.
Umarım istediğiniz budur.
 
Merhaba,
Ben de bir şeyler karalamıştım. Ben de A sütunu için yazmıştım.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, [A:A]) Is Nothing Then Exit Sub

If IsNumeric(Target.Value) Then
    Application.EnableEvents = False
    Target.Value = TimeSerial(Int(Target.Value / 100), Target.Value Mod 100, 0)
    Application.EnableEvents = True
End If

End Sub
 
İlgili sütunun Biçimini Hücre Biçimlendirmeden "ss:dd" yapın
Sayfanın kod bölümüne aşağıdakini yapıştırın. Ben "B" sütunu için yazdım. Siz kendinize göre uyarlarsınız.
C++:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, [B:B]) Is Nothing Then Exit Sub
    Application.EnableEvents = False
    Target = TimeSerial(Int(Target), 100 * (Target - Int(Target)), 0)
    Application.EnableEvents = True
End Sub

B2 ye 12,55 yazınca 12:55 olarak düzeltir
B2 ye 12,65 yazınca 12:65 olamayacağı için 13:05 olarak düzeltir.
Umarım istediğiniz budur.
Teşekkür ederim elinize sağlık. B:B yerine B:D yaptım 3 sütunda da işe yarıyor. Bir sorun var gibi tam çözemedim ona bakacağım.

Merhaba,
Ben de bir şeyler karalamıştım. Ben de A sütunu için yazmıştım.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, [A:A]) Is Nothing Then Exit Sub

If IsNumeric(Target.Value) Then
    Application.EnableEvents = False
    Target.Value = TimeSerial(Int(Target.Value / 100), Target.Value Mod 100, 0)
    Application.EnableEvents = True
End If

End Sub

Hocam sizlerin yaptığı karalamak ise biz ne yapıyoruz acaba? Harikalar yaratmakta üzerinize yok. Ellerine sağlık hepinizin.
 
Selamlar
Her iki kodu da denedim 1230 yazıyorum 00:00 çıkıyor
acaba 12:30 yazmayacak mı
nerede hata yaptım anlamadım
kodları tek tek denedim
ss:dd da yaptım ?
 
Selamlar
Her iki kodu da denedim 1230 yazıyorum 00:00 çıkıyor
acaba 12:30 yazmayacak mı
nerede hata yaptım anlamadım
kodları tek tek denedim
ss:dd da yaptım ?
Bende yapamadım :)
12,55 yazıyorum 13:12 yapıyor, beceremedim
 
@ÖmerFaruk Bey'in kodunda B sütunu biçimini Saat yapıp, veriyi 11,22 şeklinde arada virgül ile girmelisiniz.
@Necdet Bey'in kodunda da A sütunu biçimini yine Saat yapıp, veriyi 1122 şeklinde yapışık biçimde girmelisiniz.

Bende her iki kod da sorunsuz çalışıyor, tekrar emeğinize sağlık.
 
@DoğanD Bey teşekkürler açıklama için. Başardım :)

@mavi674 ben yaptım sanırım bende ki sorun kodları modüle koyup çalıştırmatı. Sayfa1 içine yazınca kodları çalıştı.
Sizde hangi sayfada deniyorsanız o sayfaya yazın kodu belki sorun aynıdır.

Herkese teşekkürler, faydalı bir bilgi daha kazandık.
 
Son düzenleme:
Ben bu kodu neden kaydedemiyorum? Tablo çok güzel çalışıyor. Aç
Merhaba,
Ben de bir şeyler karalamıştım. Ben de A sütunu için yazmıştım.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, [A:A]) Is Nothing Then Exit Sub

If IsNumeric(Target.Value) Then
    Application.EnableEvents = False
    Target.Value = TimeSerial(Int(Target.Value / 100), Target.Value Mod 100, 0)
    Application.EnableEvents = True
End If

End Sub
Hocam 3lü vardiya için eğer personel 23:00 giriş- 07:00 çıkış olacak şekilde yapmak istersek ne eklememiz gerekir? 00.00 ile 23.50 arası çalışıyor.
 

Ekli dosyalar

ccuneyt13 Teşekkürler
ÖmerFaruk beyin kodu 12,30 da 12:30 oldu ama
Necdet beyin kodunda ise 12,30 yazına 07:30 çıkıyor.
Bir de bunu virgülsüz girmenin yolu yok mu
1230 yazınca 12:30 olsa saha pratik olacak...

Herkese Teşekkülerrrr
 
benim verdiğim kodlarda 12,30 değil 1230 yazacaksınız
 
Çok özür dilerim Necdet bey,
benim istediğimi zaten siz yapmışsınız. ben yanlış yapmışım.
Lütfen özürümü kabul edin ve Teşekkürlerlml sunuyorum.
 
Rica ederim, özür ne demek_?
olur böyle şeyler, sonuçta yazışarak konuşuyoruz :)
 
Ben bu kodu komple B : D olarak kullanmak yerine;

C4 ile G42 arasında ve K4 ile O42 arasındaki hücrelere uygulamak istesem C4:G42;K4:O42 olarak mı yazmalıyım
If Intersect(Target, [C:E]) Is Nothing Then Exit Sub
bölgesine.
 
Merhaba,
Kodları kendinize uyarlayınız.
Kod:
If Intersect(Target, [B3:B7,F6:I8,K9:M12]) Is Nothing Then Exit Sub
yada
Kod:
If Intersect(Target, Range("B3:B7,F6:I8,K9:M12")) Is Nothing Then Exit Sub

Not : Aralık makro kaydet ile alınarak uyarlanmıştır. Bunu siz de yapabilirsiniz.
 
Son düzenleme:
Geri
Üst