• DİKKAT

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

Userformdan hücreye saat formatı.

Katılım
15 Ocak 2008
Mesajlar
530
Excel Vers. ve Dili
office 2013 Ingilizce
Kolay gelsin,

Userformda textbox a 0530 yazdım, değiştir buttonuna tıkladım 0530 değeri A1 hücresine nasıl 05:30 olarak aktarılabilir ?
Yardımlarınız için teşekkürler.
 
Kolay gelsin,

Userformda textbox a 0530 yazdım, değiştir buttonuna tıkladım 0530 değeri A1 hücresine nasıl 05:30 olarak aktarılabilir ?
Yardımlarınız için teşekkürler.

Merhaba
Userform'a bir tane commaandbutton ekleyin
Kod:
Option Explicit
Private Sub CommandButton1_Click()
Dim ts
ts = TextBox1.Value
If Len(ts) = 3 Then
ts = TimeSerial(Left(ts, 1), Right(ts, 2), 0)
ElseIf Len(ts) = 4 Then
ts = TimeSerial(Left(ts, 2), Right(ts, 2), 0)
End If
Range("A1") = ts
Range("A1").NumberFormat = "h:mm"
End Sub
Bu kodu o butona tayın.
 
Üstadım teşekkürler, şunu nasıl yaparız hiç userformle uğraşmadan.
A1 e 530 B1 e 830 yazdım çıkartma yaptım ( bu arada 530 ve 830 saatleri simgelemekte ) C1 e 300 yazdı bunu dakikaya nasıl dönüştürebilirim. Birde şu var A1 e bazen 2330 yazıyorum işlem gece 0200 de bitiyor ama 0200 2330 dan küçük olduğu için aradaki işlem/saati hesaplayamıyorum. İlginiz için çok teşekkür ederim.
 
Üstadım teşekkürler, şunu nasıl yaparız hiç userformle uğraşmadan.
A1 e 530 B1 e 830 yazdım çıkartma yaptım ( bu arada 530 ve 830 saatleri simgelemekte ) C1 e 300 yazdı bunu dakikaya nasıl dönüştürebilirim. Birde şu var A1 e bazen 2330 yazıyorum işlem gece 0200 de bitiyor ama 0200 2330 dan küçük olduğu için aradaki işlem/saati hesaplayamıyorum. İlginiz için çok teşekkür ederim.

Merhaba
1. Sorunuz için Hücre Biçimlendir - İsteğe Uyarlanmış - Türk Bölümüne
Kod:
[s]:dd
Bunu yazın
yada
Kod:
türkçe
=METNEÇEVİR(B1-A1;"[s]:dd")*1
ingilizce
=TEXT(B1-A1;"[h]:mm")*1
Bu Şekilde deneyin
2. sorunuza gelince 23:59'dan sonra gün devreder ondan dolayı hesap yapmaz.
 
ingilizce derken yine metneçavir demişsiniz ben mi yanlı görüyorum hocam. O kısmı nereye yazmam gerek. Anlatamamışımdır diye birkez daha yazmamda bir sakınca yoktur inşallah hocam. Ben
A1 hücresine 530
B1 hücresine 830 yazdığımda C1 hücresine ( =B1-A1 ) yaptıktan sonra C1 e yansıyacak olan 300 nasıl 03:00 otomatik yapabilirim. Yada dakikaya çevirmek için =(b1-a1)*0,6 yapsam yeterlimidir. Tam saatlerde sıkıntı yapmıyor da
mesela a1 530 b1 940 olunca C1 e 410 yansıyor *0,6 yapınca 246dk oluyor, yani hata 246 cıkmaması gerek. Saolun hocam tekrardan...
 
ingilizce derken yine metneçavir demişsiniz ben mi yanlı görüyorum hocam. O kısmı nereye yazmam gerek. Anlatamamışımdır diye birkez daha yazmamda bir sakınca yoktur inşallah hocam. Ben
A1 hücresine 530
B1 hücresine 830 yazdığımda C1 hücresine ( =B1-A1 ) yaptıktan sonra C1 e yansıyacak olan 300 nasıl 03:00 otomatik yapabilirim. Yada dakikaya çevirmek için =(b1-a1)*0,6 yapsam yeterlimidir. Tam saatlerde sıkıntı yapmıyor da
mesela a1 530 b1 940 olunca C1 e 410 yansıyor *0,6 yapınca 246dk oluyor, yani hata 246 cıkmaması gerek. Saolun hocam tekrardan...

Merhaba
üstteki mesajı güncelledim
Sayfanın kod bölümüne
Kod:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A:B")) Is Nothing Then Exit Sub
If Len(Target.Value) = 3 Then
Target.Value = TimeSerial(Left(Target.Value, 1), Right(Target.Value, 2), 0)
ElseIf Len(Target.Value) = 4 Then
Target.Value = TimeSerial(Left(Target.Value, 2), Right(Target.Value, 2), 0)
End If
Target.NumberFormat = "h:mm"
End Sub
Bu kodu kopyalayın ve deneyin
 
Merhaba
üstteki mesajı güncelledim
Sayfanın kod bölümüne
Kod:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A:B")) Is Nothing Then Exit Sub
If Len(Target.Value) = 3 Then
Target.Value = TimeSerial(Left(Target.Value, 1), Right(Target.Value, 2), 0)
ElseIf Len(Target.Value) = 4 Then
Target.Value = TimeSerial(Left(Target.Value, 2), Right(Target.Value, 2), 0)
End If
Target.NumberFormat = "h:mm"
End Sub
Bu kodu kopyalayın ve deneyin

Üstadım ellerine sağlık şık oldu şimdi bişeye benzedi. Yalnız ufak bir sorunu tetikledi sebebini bulamadım, ekteki dosyaya bakabilirmisiniz.
 

Ekli dosyalar

Üstadım ellerine sağlık şık oldu şimdi bişeye benzedi. Yalnız ufak bir sorunu tetikledi sebebini bulamadım, ekteki dosyaya bakabilirmisiniz.

Merhaba
Kodu
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Intersect(Target, Range("D:D,H:H")) Is Nothing Then Exit Sub
If IsNumeric(Target.Value) = False Or Target = "" Then Exit Sub
If Len(Target.Value) = 3 Then
Target.Value = TimeSerial(Left(Target.Value, 1), Right(Target.Value, 2), 0)
ElseIf Len(Target.Value) = 4 Then
Target.Value = TimeSerial(Left(Target.Value, 2), Right(Target.Value, 2), 0)
End If
Target.NumberFormat = "h:mm"
End Sub
Bununla değiştirin
 
Geri
Üst