Bu yazımızda, tanımlanan periyot arasındaki ayları ve o aydaki gün sayısını listelemek için bir makro oluşturacağız. Ayrıca tanımlanan dönem arasındaki toplam gün sayısını da gösterecektir.
Bir aydaki ayları ve gün sayısını listelemek için “DaysInPeriod” makrosu oluşturduk. “Gönder” butonu tıklanarak makro çalıştırılabilir.
Makroyu çalıştırmadan önce, başlangıç ve bitiş tarihi için giriş sağlanmalıdır. Başlangıç tarihi olarak “G6” hücresindeki değeri ve bitiş tarihi olarak “G7” hücresindeki değeri alır. Çıktı aşağıda “F9” hücresinde görüntülenecektir.
Gönder düğmesine tıklandığında, makro, F sütununda ayın adını ve G sütununda o aydaki gün sayısını görüntüler. Son satır, belirtilen dönem arasındaki toplam gün sayısını gösterir.
Mantıksal açıklama
Makroda başlangıç tarihinden belirtilen bitiş tarihine kadar döngüye başlıyoruz. Döngü yaparken bir ayın son tarihini kontrol ediyoruz. Ayın son tarihi ile karşılaşılırsa F ve G sütunlarında ay adı ve o aya ait gün sayısı görüntülenir. Aynı şekilde bitiş tarihini de kontrol ederiz. Bitiş tarihi ile karşılaşıldığında son aya ait giriş ve o aya ait gün sayısı görüntülenir.
Lütfen kod için aşağıdan takip edin
Seçenek Explicit Sub DaysInPeriod() Dim StartDate, EndDate As Date Dim intRow As Integer, intDays As Integer 'Önceki içeriği temizliyor Range("F10:G1048576").ClearContents 'Başlangıç ve bitiş tarihi alınıyor StartDate = Range("G6") EndDate = Range("G7") 'Değişkenin başlangıç satır numarasına sıfırlanması intRow = 10 'Başlangıç tarihinden bitiş tarihine kadar ayları ve gün sayısını listeleme Do intDays = intDays + 1 'Ayın son tarihini veya StartDate'in ne zaman eşit olduğunu kontrol etme BitişTarihi Eğer (Month(StartDate) Month(StartDate + 1)) Veya StartDate = EndDate Sonra 'Ay adının eklenmesi Cells(intRow, 6) = Format(StartDate, "mmmm") 'Aya gün sayısı eklenmesi Hücreler( intRow, 7) = intDays 'Bir sonraki satıra geçiliyor intRow = intRow + 1 intDays = 0 End If 'Bir sonraki tarihe taşınıyor StartDate = StartDate + StartDate'e Kadar 1 Döngü > EndDate 'Son satırdaki toplamı alma Cells(intRow, 6) = "Toplam Gün" Cells(intRow, 7) = Application.Sum(Range("G10:G" & intRow)) End Sub
Bu blogu beğendiyseniz, Facebook'ta arkadaşlarınızla paylaşın. Ayrıca bizi Twitter ve Facebook'ta da takip edebilirsiniz.
Sizden haber almayı çok isteriz, işimizi nasıl geliştirebileceğimizi ve sizin için nasıl daha iyi hale getirebileceğimizi bize bildirin. E-posta sitesinde bize yazın