Hücredeki saat formatındaki saat verisini saat olarak değişkene atamak

Cevapla
Mavirenk
Mesajlar: 5
Kayıt: Cum May 10, 2024 11:02 pm
Adınız: Mavi
Soyadınız: Renk

Hücredeki saat formatındaki saat verisini saat olarak değişkene atamak

Mesaj gönderen Mavirenk »

Arkadaşlar merhaba bir sutunda bulunan saat formatlı hücrelerdeki saat verilerinin toplamını (örnek: 26:15 olarak veya 30:20 şeklinde) topladıktan sonra VBA'da Dim SaatBul As Date değişkenine atıyorum. Fakat saat toplamı 24 saatten büyük ise 24 saati düşüp geri kalan saatleri gösteriyor. Ben hücredeki 24 saat ve üzeri saat toplamını saat ve dakika olarak değişkene hücrede yazan saat 50:45 ise aynısını aynı şekilde SaatBul değişkenine atamak istiyorum. Nasıl bir yöntem kullanacağımı bulamadım yardım edebilirseniz sevinirim umarım açıklayabilmişimdir teşekkür ederim.
erseldemirel
Mesajlar: 133
Kayıt: Cmt Haz 24, 2023 12:23 am
Web Sitesi: https://erseldemirel.com.tr/
Adınız: Ersel
Soyadınız: Demirel

Re: Hücredeki saat formatındaki saat verisini saat olarak değişkene atamak

Mesaj gönderen erseldemirel »

Aşağıdaki örnek kod a1-a10 aralığını toplayıp çıkan sonucu 24 saatten az yada çok olma durumuna göre yorumlar.
Bir deneyin. Size uygunsa üzerinde değişiklik yaparsınız.

Kod: Tümünü seç

 Sub ToplamSaatBul()
    Dim ToplamSaat As Double
    Dim SaatBul As Date
    
    ToplamSaat = Application.WorksheetFunction.Sum(Range("A1:A10"))
    
    If ToplamSaat >= 24 Then
       
        Dim Saat As Integer
        Dim Dakika As Integer
        Saat = Int(ToplamSaat) Mod 24
        Dakika = (ToplamSaat - Saat) * 60
       
        SaatBul = TimeSerial(Saat, Dakika, 0)
    Else
       
        SaatBul = TimeSerial(Int(ToplamSaat), (ToplamSaat - Int(ToplamSaat)) * 60, 0)
    End If
   
    MsgBox "Toplam Saat Bul: " & Format(SaatBul, "hh:mm")
End Sub
Mavirenk
Mesajlar: 5
Kayıt: Cum May 10, 2024 11:02 pm
Adınız: Mavi
Soyadınız: Renk

Re: Hücredeki saat formatındaki saat verisini saat olarak değişkene atamak

Mesaj gönderen Mavirenk »

Teşekkür ederim erseldemirel hocam şimdi deneme imkanım yok deneyip size dönüş yapacağım.
Mavirenk
Mesajlar: 5
Kayıt: Cum May 10, 2024 11:02 pm
Adınız: Mavi
Soyadınız: Renk

Re: Hücredeki saat formatındaki saat verisini saat olarak değişkene atamak

Mesaj gönderen Mavirenk »

Sayın erseldemirel hocam ilginiz için teşekkür ederim sağolun fakat yazdığınız kodlar istediğim sonucu vermedi. Sizin kodlar topladığı saatleri küsüratlı sayı tipinde veriyor benim istediğim sonuç örneğin kodunuzu denediğim de A11 hücresindeki toplam saat 46:30 şeklindeydi aynı şekilde değişkene aktarmak istiyorum. Teşekkür ederim.
erseldemirel
Mesajlar: 133
Kayıt: Cmt Haz 24, 2023 12:23 am
Web Sitesi: https://erseldemirel.com.tr/
Adınız: Ersel
Soyadınız: Demirel

Re: Hücredeki saat formatındaki saat verisini saat olarak değişkene atamak

Mesaj gönderen erseldemirel »

Şu eke bir bakınız.a1-a10 aralığındaki saatleri dk sn vs. toplar a11 e yazar veya bir değişkene atayabilirsiniz. Sadece format önemli burada
test1.xlsm
Mavirenk
Mesajlar: 5
Kayıt: Cum May 10, 2024 11:02 pm
Adınız: Mavi
Soyadınız: Renk

Re: Hücredeki saat formatındaki saat verisini saat olarak değişkene atamak

Mesaj gönderen Mavirenk »

Selamunaleyküm hayırlı sabahlar sayın erseldemirel hocam dosyanızı denedim siz A11 hücresine saat toplamlarını toplatmış ve kod ile hücrenin biçimini saat formatına çevirmişsiniz. Benim istediğim A11 hücresindeki saat formatlı veriyi yani sizin dosyanızda ki 95:00 saati kod editöründeki SaatBul değişkenine 95:00 şeklinde aldırmaktır. Yardımlarınız için teşekkür ederim.
erseldemirel
Mesajlar: 133
Kayıt: Cmt Haz 24, 2023 12:23 am
Web Sitesi: https://erseldemirel.com.tr/
Adınız: Ersel
Soyadınız: Demirel

Re: Hücredeki saat formatındaki saat verisini saat olarak değişkene atamak

Mesaj gönderen erseldemirel »

Selamlar değişkene atıp a12 ye yazdırma örneği. yinede format bilgisi işleniyor. Başka arkadaşların çözümlerinide bekliyoruz

Kod: Tümünü seç

Public saatbul As Date
Sub Topla()
For Each hücre In Range("A1:A10")
toplam = toplam + hücre.Value
Next hücre
Range("A11").Value = toplam
Range("A11").NumberFormat = "[h]:mm:ss"
saatbul = toplam
Run "test"
End Sub
Sub test()
Range("A12") = saatbul
Range("A12").NumberFormat = "[h]:mm:ss"
End Sub
Mavirenk
Mesajlar: 5
Kayıt: Cum May 10, 2024 11:02 pm
Adınız: Mavi
Soyadınız: Renk

Re: Hücredeki saat formatındaki saat verisini saat olarak değişkene atamak

Mesaj gönderen Mavirenk »

Teşekkür ederim erseldemirel hocam ilginiz için emeğinize sağlık. Sizin gibi değerli hocalarımın verdiği kod istediğim sonucu verdi.

C1:C10 hücre aralığındaki saat formatlı verileri C11 hücresine [ss]:dd biçiminde toplamını aldırdıktan sonra

Sub Saatler()

Dim SaatBul As Date
Dim Saat, Dakika, Gun As Integer

SaatBul = Worksheets("Saatler").Cells(11, "C").Value
Gun = Int(SaatBul)
Saat = Hour(SaatBul) + Gun * 24
Dakika = Minute(SaatBul)

MsgBox "Sonuç: " & Saat & " Saat " & Dakika & " Dakika"
End Sub
erseldemirel
Mesajlar: 133
Kayıt: Cmt Haz 24, 2023 12:23 am
Web Sitesi: https://erseldemirel.com.tr/
Adınız: Ersel
Soyadınız: Demirel

Re: Hücredeki saat formatındaki saat verisini saat olarak değişkene atamak

Mesaj gönderen erseldemirel »

Teşekkür eder İyi çalışmalar dilerim kolay gelsin
Cevapla
  • Benzer Konular
    Cevaplar
    Görüntüleme
    Son mesaj