Hücredeki saat formatındaki saat verisini saat olarak değişkene atamak
Hücredeki saat formatındaki saat verisini saat olarak değişkene atamak
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.
-
- 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
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.
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
Re: Hücredeki saat formatındaki saat verisini saat olarak değişkene atamak
Teşekkür ederim erseldemirel hocam şimdi deneme imkanım yok deneyip size dönüş yapacağım.
Re: Hücredeki saat formatındaki saat verisini saat olarak değişkene atamak
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.
-
- 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
Ş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
Re: Hücredeki saat formatındaki saat verisini saat olarak değişkene atamak
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.
-
- 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
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
Re: Hücredeki saat formatındaki saat verisini saat olarak değişkene atamak
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
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
-
- 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
Teşekkür eder İyi çalışmalar dilerim kolay gelsin
-
- Benzer Konular
- Cevaplar
- Görüntüleme
- Son mesaj
-
- 1 Cevaplar
- 1791 Görüntüleme
-
Son mesaj gönderen SNNAY
-
-
koşula bağlı olarak diğer sayfaya satır kopyalama
gönderen obsesyonur » » forum Genel Makro Paylaşımları - 2 Cevaplar
- 423 Görüntüleme
-
Son mesaj gönderen obsesyonur
-
-
- 2 Cevaplar
- 34 Görüntüleme
-
Son mesaj gönderen attrd112