• DİKKAT

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

İki Tarih Arasında Geçen Zamanı Hesaplama

Katılım
15 Haziran 2021
Mesajlar
147
Excel Vers. ve Dili
Office 2016
Merhaba

Excelde makro ile iki tarih arasındaki farkı hesaplatıp başka bir hücreye yazdırdım.

Fark hücresine yazdığım değer çıkıyor.
Bu değeri "ss:dd:ss" formatında yazdıramıyorum. Hücre biçimlendirmenden yapamadım.
İki tarih arasında geçen zamanı yazdırmak istiyorum. "00:18:56 Dakika" gibi. Nasıl yapacağım.


Başlangıç

Bitiş

Fark

1.04.2023 20:51:14

1.04.2023 21:10:26

0,31999999989057

Kullandığım makro şu.

Kod:
Sub saatisle1()
Dim c   As Range
    Dim s1  As Worksheet, s2 As Worksheet
    Dim yol As String, ad As String, aranan As String
    yol = ThisWorkbook.Path & "\"
    ad = "tozetiketbas.xlsm"
    Set s1 = Sheets("rapor")
    Workbooks.Open (yol + ad)
    dolu = s1.Range("B" & Rows.Count).End(xlUp).Row
    For a = 3 To dolu
    aranan = s1.Range("B" & a)
    Set c = Workbooks(ad).Worksheets("rapor").Range("F:F").Find(aranan, LookIn:=xlValues, LookAt:=xlWhole)
    If Not c Is Nothing Then
        s1.Range("AG" & a) = Workbooks(ad).Worksheets("rapor").Range("B" & c.Row)
        s1.Cells(a, "AH").Value = (Workbooks(ad).Worksheets("rapor").Cells(c.Row, "B").Value - s1.Cells(a, "A").Value) * 24
    Else
        s1.Range("AG" & a) = "Cikis Bulunamadi!"
    End If
    dolu = dolu + 1
    Next a
    Windows("reçetebarkod.xlsm").Activate
End Sub

Yardımcı olabilecek kimse var mı?
 
s1.Cells(a, "AH").Value = (Workbooks(ad).Worksheets("rapor").Cells(c.Row, "B").Value - s1.Cells(a, "A").Value) * 24
Satırını
s1.Cells(a, "AH").Value = Format((Workbooks(ad).Worksheets("rapor").Cells(c.Row, "B").Value - s1.Cells(a, "A").Value) * 24, "hh:mm:ss") değiştirin.
 
s1.Cells(a, "AH").Value = (Workbooks(ad).Worksheets("rapor").Cells(c.Row, "B").Value - s1.Cells(a, "A").Value) * 24
Satırını
s1.Cells(a, "AH").Value = Format((Workbooks(ad).Worksheets("rapor").Cells(c.Row, "B").Value - s1.Cells(a, "A").Value) * 24, "hh:mm:ss") değiştirin.

Değişikliği yaptım sonuç bu :


Giriş

Çıkış

Fark

1.04.2023 20:51:14

1.04.2023 21:10:26

07:40:48

doğru hesaplayamadı.

Acaba nerede hata yaptım?
 
Hesabı bilemem sadece kodunuzdaki değere saat formatı eklendi.
 
Hesabı bilemem sadece kodunuzdaki değere saat formatı eklendi.

Şöyle bir düzenleme yaptım fakat ;

Kod:
Sub saatisle1()
Dim c   As Range
    Dim s1  As Worksheet, s2 As Worksheet
    Dim yol As String, ad As String, aranan As String
    Dim fark As Date
    yol = ThisWorkbook.Path & "\"
    ad = "tozetiketbas.xlsm"
    Set s1 = Sheets("rapor")
    Workbooks.Open (yol + ad)
    dolu = s1.Range("B" & Rows.Count).End(xlUp).Row
    For a = 3 To dolu
    aranan = s1.Range("B" & a)
    Set c = Workbooks(ad).Worksheets("rapor").Range("F:F").Find(aranan, LookIn:=xlValues, LookAt:=xlWhole)
    If Not c Is Nothing Then
        giris = Format((s1.Cells(a, "A").Value) * 24, "hh:mm:ss")
        cikis = Format((Workbooks(ad).Worksheets("rapor").Cells(c.Row, "B").Value) * 24, "hh:mm:ss")
        fark = cikis - giris
        s1.Cells(a, "AG") = fark
    Else
        s1.Range("AG" & a) = "Cikis Bulunamadi!"
    End If
    dolu = dolu + 1
    Next a
    Windows("reçetebarkod.xlsm").Activate
End Sub

Şu satırda hata alıyorum :

fark = cikis - giris

Yardımcı olabilecek kimse var mı?
 
Kod:
    Dim c As Range
    Dim s1 As Worksheet, s2 As Worksheet
    Dim yol As String, ad As String, aranan As String
    Dim fark As Double
    Dim giris As Date
    Dim cikis As Date
 
*24 yapmadan deneyiniz.
 
Geri
Üst