• DİKKAT !

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak Dosya Yükleme tamamen ücretsizdir.

Çözüldü Dersleri saatlik hesaplayıp tarih yazma

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

kausku

Yeni Üye
Katılım
14 Eyl 2023
Mesajlar
24
Aldığı beğeni
1
Excel V
Office 2019 TR
Konu Sahibi
Kolay gelsin. çok sayıda eğitim planlamam olduğu için örnekte olduğu gibi bir programlama yapılabilirmi.
 
örneğinizden hiç bir şey anlamadım dün de bakmıştım. Örneğinizi tekrar düzenleyin ve gerekli açıklamayı yapın.
 
Konu Sahibi
örneğinizden hiç bir şey anlamadım dün de bakmıştım. Örneğinizi tekrar düzenleyin ve gerekli açıklamayı yapın.
İçeriği tekrar düzenleyip açıklamayı yazdım.İlginiz için teşekkür ederim
 
EĞİTİMDE OLMADIĞI GÜNLER için daha sonra ekleme yaparım sonuçları kontrol ediniz


HTML:
C++:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 
Konu Sahibi
Formülleri denedim. Bütün ders tarihleri eğitimiin başlangıç gününde hesaplıyo. İstediğim şey a dersinin bittiği gün b dersi başlayacak. Yardımlarınız için teşekkür ederim
 
Sub CalismaGunleriHesapla()
Dim toplamSaat(1 To 9) As Double
Dim baslangicTarihi As Date
Dim calismaSaatleri As Double
Dim calismaGunleri As Integer
Dim sonTarih As Date
Dim i As Integer

' Hücrelerden verileri al
For i = 1 To 9
toplamSaat(i) = Range("Sayfa1!B" & (2 + i)).Value
Next i

' Başlangıç tarihini ilk hücreden al
baslangicTarihi = Range("Sayfa1!D1").Value
calismaSaatleri = 5 ' Günde çalışılan saat sayısı

' Toplam çalışma günlerini hesapla ve tarih aralıklarını yazdır
For i = 1 To 9
calismaGunleri = Application.WorksheetFunction.RoundUp(toplamSaat(i) / calismaSaatleri, 0)

' Son tarihi bul
sonTarih = DateAdd("d", calismaGunleri - 1, baslangicTarihi)

' Tarih aralığını C3 hücresine yazdır
Range("Sayfa1!C" & (2 + i)).Value = Format(baslangicTarihi, "dd.mm.yyyy") & " - " & Format(sonTarih, "dd.mm.yyyy")

' Başlangıç tarihini bir sonraki tarihin başlangıcı olarak güncelle
baslangicTarihi = sonTarih + 1
Next i
End Sub
 
Kontrol edin
Ders olmayan saatleri ekledim



Sub CalismaGunleriHesapla()
Dim toplamSaat(1 To 9) As Double
Dim baslangicTarihi As Date
Dim calismaSaatleri As Double
Dim calismaGunleri As Integer
Dim sonTarih As Date
Dim i As Integer


For i = 1 To 9 ' Hücrelerden verileri al
toplamSaat(i) = Range("Sayfa1!B" & (2 + i)).Value
Next i


baslangicTarihi = Range("Sayfa1!D1").Value ' Başlangıç tarihini belirle
calismaSaatleri = 5 ' Günde çalışılan saat sayısı


If IsDate(baslangicTarihi) Then ' D1 hücresinde tarih varsa, başlangıç tarihini güncelle
' D1 hücresindeki tarihten başlayarak E2:E11 arasındaki tarihleri kontrol et
For i = 1 To 3
' Toplam çalışma günlerini hesapla
calismaGunleri = Application.WorksheetFunction.RoundUp(toplamSaat(i) / calismaSaatleri, 0)

' Son tarihi bul
sonTarih = DateAdd("d", calismaGunleri - 1, baslangicTarihi)

' Tarih aralığını C3 hücresine yazdır
Range("Sayfa1!C" & (2 + i)).Value = Format(baslangicTarihi, "dd.mm.yyyy") & " - " & Format(sonTarih, "dd.mm.yyyy")

' Başlangıç tarihini bir sonraki tarihin başlangıcı olarak güncelle
baslangicTarihi = sonTarih + 1
Next i
End If
End Sub
 
Eğer ders olmayan tarihlere 4, 5... tarihi eklerseniz
' D1 hücresindeki tarihten başlayarak E2:E11 arasındaki tarihleri kontrol et
For i = 1 To 3

bu kısımda
For i = 1 To 4 veya
For i = 1 To 5 gibi ....
değiştirin
 
Dosyanızı düzenledim. Başarılar dilerim
 
Konu Sahibi
Kontrol edin
Ders olmayan saatleri ekledim



Sub CalismaGunleriHesapla()
Dim toplamSaat(1 To 9) As Double
Dim baslangicTarihi As Date
Dim calismaSaatleri As Double
Dim calismaGunleri As Integer
Dim sonTarih As Date
Dim i As Integer


For i = 1 To 9 ' Hücrelerden verileri al
toplamSaat(i) = Range("Sayfa1!B" & (2 + i)).Value
Next i


baslangicTarihi = Range("Sayfa1!D1").Value ' Başlangıç tarihini belirle
calismaSaatleri = 5 ' Günde çalışılan saat sayısı


If IsDate(baslangicTarihi) Then ' D1 hücresinde tarih varsa, başlangıç tarihini güncelle
' D1 hücresindeki tarihten başlayarak E2:E11 arasındaki tarihleri kontrol et
For i = 1 To 3
' Toplam çalışma günlerini hesapla
calismaGunleri = Application.WorksheetFunction.RoundUp(toplamSaat(i) / calismaSaatleri, 0)

' Son tarihi bul
sonTarih = DateAdd("d", calismaGunleri - 1, baslangicTarihi)

' Tarih aralığını C3 hücresine yazdır
Range("Sayfa1!C" & (2 + i)).Value = Format(baslangicTarihi, "dd.mm.yyyy") & " - " & Format(sonTarih, "dd.mm.yyyy")

' Başlangıç tarihini bir sonraki tarihin başlangıcı olarak güncelle
baslangicTarihi = sonTarih + 1
Next i
End If
End Sub
teşşekkür ederim
 
Hocam bunu kullanın Onda küçük bir eksiklik tespit ettim
 
Çözüm
Durum
Konu Çözümlendiği İçin Kapatılmıştır.
Geri
Üst