• DİKKAT

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

Saati yazarken araya iki nokta koymadan tamamlattırabilir miyiz?

  • Konbuyu başlatan Konbuyu başlatan yyhy
  • Başlangıç tarihi Başlangıç tarihi

yyhy

Altın Üye
Katılım
3 Aralık 2005
Mesajlar
946
Excel Vers. ve Dili
Microsoft Office 2021 TR
Microsoft 365 TR
Saati yazarken araya iki nokta koymadan tamamlattırabilir miyiz? Yani 13:30 yazarken sadece 1330 yazınca acaba iki noktayı ( : ) kendi tamamlayabilir mi?
 
Sayfa1'in kod kısmına ekleyin.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    Target = Format(TimeSerial(Left(Target.Text, 2), Right(Target.Text, 2), 0), "hh:mm")
End Sub
 
Sayın Hamit CAN sadece istediğimiz sütuna koyma imkanı olur mu?

Sayın Hamitcan sadece istediğimiz sütuna koyma imkanı olur mu? Saat sütunu haricinde macronun çalışmasını istemiyorum.
 
Eğer saat olarak hesaplamalarda kullanmayacaksanız biçimlendirme ile yapabilirsiniz. Bu şekilde görünmesini istediğiniz hücreleri/sütunu seçerek hücreleri biçimlendirden özel sayı biçimini ve biçim olarak da 00":"00 ayarlarsanız 135 yazdığınızda 01:35; 1250 yazdığınızda 12:50 olarak görünür.

Tabi dediğim gibi bu sadece görünümü değiştirir, hesaplamalarda yazdığınız haliyle kullanılır. Örneğin 135'i excel 135 olarak yorumlar saat olarak görmez. Kısacası kağıt üstünde saat gibi görünür.
 
Sayın Hamitcan sadece istediğimiz sütuna koyma imkanı olur mu? Saat sütunu haricinde macronun çalışmasını istemiyorum.

Olabilir. Kodu, aşağıdaki gibi değiştirmeniz yeterli olacaktır.
Kod:
 Private Sub Worksheet_Change(ByVal Target As Range)
    sutun = "g"
    cells(Target.row,sutun) = Format(TimeSerial(Left(Target.Text, 2), Right(Target.Text, 2), 0), "hh:mm")
End Sub
 
Merhaba,

Alternatif olsun.

1. satırın başlık ve A sütununda veri girileceği varsayılmıştır.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
 
    If Intersect(Target, [A:A]) Is Nothing Or Target.Row < 2 Then Exit Sub
 
    Application.EnableEvents = False
 
    Target = TimeSerial(Int(Target.Value / 100), Target.Value Mod 100, 0)
 
    Application.EnableEvents = True
 
End Sub

Not : 75 te yazsanız 01:15 olarak çevirir.
 
Teşekkürler...
 
İlgilenen arkadaşlara teşekkürler.

Sayın hamitcan ve Necdet Yeşertener ellerinize sağlık ihtiyaca cevap verdi.
 
Eğer saat olarak hesaplamalarda kullanmayacaksanız biçimlendirme ile yapabilirsiniz. Bu şekilde görünmesini istediğiniz hücreleri/sütunu seçerek hücreleri biçimlendirden özel sayı biçimini ve biçim olarak da 00":"00 ayarlarsanız 135 yazdığınızda 01:35; 1250 yazdığınızda 12:50 olarak görünür.

Tabi dediğim gibi bu sadece görünümü değiştirir, hesaplamalarda yazdığınız haliyle kullanılır. Örneğin 135'i excel 135 olarak yorumlar saat olarak görmez. Kısacası kağıt üstünde saat gibi görünür.

Yusuf bey bu özel sayı biçimi 2007 sürümünde varmı ben göremedim.yardımcı olursanız sevinirim.
 
Tüm sürümlerde var. Kendiniz ayarlayabilirsiniz.

Öncelikle hücreleri biçimlendiri açın.

Sayı sekmesindeyken sol taraftan İsteğe Uyarlanmış'ı seçin

Sağ tarafta Tür kısmına ise 00":"00 yazarsanız o hücreye yazdığınız her sayı arasına iki nokta konularak görünecektir.
 
Tüm sürümlerde var. Kendiniz ayarlayabilirsiniz.

Öncelikle hücreleri biçimlendiri açın.

Sayı sekmesindeyken sol taraftan İsteğe Uyarlanmış'ı seçin

Sağ tarafta Tür kısmına ise 00":"00 yazarsanız o hücreye yazdığınız her sayı arasına iki nokta konularak görünecektir.

çok çok teşekkür ederim ben özelden yapmaya çalışıyormuşum ondan olmadı.:D
peki bunda mantık nedir acaba yani saati 12:00:00 olarak yazdırmak istiyorsak ne yapmalıyız acaba yada 17.07.1975 gibi bir tarih için ne yapmalıyız eğer yardım ederseniz çok işime yarayacak şimdiden teşekkürler
 
Bunda önemli olan nokta şudur: siz bu sayıların sadece görünürde mi tarih ve saat gibi görünmesini istiyorsunuz yoksa excelin bunları tarih ve saat olarak belirleyip hesaplamalarda da tarih ve saat olarak mı kullanmasını istiyorsunuz.

eğer sadece görünürde tarih ve sayı gibi görünmesini istiyorsanız o isteğe uyarlanmış kısmına nasıl yazarsanız biçim öyle görünür. Örneğin 00"/"00"/"0000 yazarsanız 17071975 yazdığınızda ekranda ve kağıt üstünde 17/07/1975 görünür ama aslında orda sayı olarak on yedi milyon yetmiş bir bin dokuz yüz yetmiş beş yazıyordur ve excel de hesaplamalarda bu sayı halini kullanır. Örneğin bu kişinin yaşını bulmak istediğinizde excel hesaplayamaz ya da o günün hangi güne denk geldiğini excel bulamaz.

Eğer gerçekten tarih ve saat gibi algılanmasını ve öyle görünmesini istiyorsanız kesinlikle bu yöntemi önermem.

Tarih biçimi için en basit yöntem hücreyi o sayı biçimlerinden tarih olarak biçimlendirdikten sonra hücreye girerken 17/05/1975 için 17/5/75 yazmak yeterlidir. Bu şekilde yazdığınızda excel onu 17/05/1975 olarak düzeltecek ve kullanacaktır.
 
Tüm arkadaşlara teşekkürler.

Arkadaşlar bir sorun var. 00":"00 format olarak yazdığımızda örneğin 1500'şeklinde yazıyorum 15:00 olarak gözüküyor. Saat Formatına formülle nasıl dönüştürebiliriz.
 

Ekli dosyalar

Arkadaşlar bir sorun var. 00":"00 format olarak yazdığımızda örneğin 1500'şeklinde yazıyorum 15:00 olarak gözüküyor. Saat Formatına formülle nasıl dönüştürebiliriz.

Dalga mı geçiyorsunuz?

6 nolu mesajdaki kodları boşuna mı verdik?
 
Sayın Necdet Yeşertener benim açıklığa kavuşturmak istediğim ve aklıma takılan konu sayın YUSUF44'ün vermiş olduğu değişik alternatif çözümle yola çıkıldığında acaba o sütundaki bilgiyi alarak nasıl saat formatına dönürebiliriz diye düşündüm. Sizin eklemiş olduğunuz kod güzel çalışıyor buna diyebileceğimiz herhangi bir şey diyemeyiz. Yardımlarınız için de ayrıca teşekkürler.
 
Merhaba,

Alternatif olsun.

1. satırın başlık ve A sütununda veri girileceği varsayılmıştır.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
 
    If Intersect(Target, [A:A]) Is Nothing Or Target.Row < 2 Then Exit Sub
 
    Application.EnableEvents = False
 
    Target = TimeSerial(Int(Target.Value / 100), Target.Value Mod 100, 0)
 
    Application.EnableEvents = True
 
End Sub

Not : 75 te yazsanız 01:15 olarak çevirir.

Peki hocam ben bir şey sorayım. Aynı olayı aynı şekilde tarih için de yapmak istesek (Yani veriyi tarih olarak görecek sayı olarak değil) verdiğiniz kodda nasıl bir değişiklik ya da ek yapmamız gerekir?
 
Son düzenleme:
Merhaba,

Alternatif olsun.

1. satırın başlık ve A sütununda veri girileceği varsayılmıştır.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, [A:A]) Is Nothing Or Target.Row < 2 Then Exit Sub

    Application.EnableEvents = False

    Target = TimeSerial(Int(Target.Value / 100), Target.Value Mod 100, 0)

    Application.EnableEvents = True

End Sub

Not : 75 te yazsanız 01:15 olarak çevirir.
Merhaba arkadaşlar.
Formülle hesaplattığımda 37,50 olan rakamı 37:30 yapmak istedim ama hata verdi.
 
Merhaba,

Alternatif :

Kod:
=A1/24

Hücreyi de aşağıdaki gibi Özel Hücre biçiminden Türe Yazınız
Kod:
[s]:dd
 
Geri
Üst