Anasayfa | Akademik Forum | Sizden Gelenler | Sipariş
Menü Açıklamaları
Sorular - Cevaplar
Makaleler
Makrolar
Yerleşik İşlevler
Animasyonlar
Yumurtalar
Fonksiyonlar
MTK Programlar
ExcelCE
Dosya İndir
Neler Yaptık?
İletişim
Sorular - Cevaplar
Soru-Cevap: 62 - Ö. Faruk Çakmanus

Bir hücredeki tarihin ait olduğu ayın bir sonraki ayına ait gün sayısı kadar gün ilave ederek yeni tarihi görmek istiyorum.

Mesela,  A1:10.01.2005 ----> B1: ?

A1'deki ay Ocak ayı. Bir sonraki 2005 senesinin Şubat ayı bu da 28 gün çekiyor.

10.01.2005 + 28 gün = 07.02.2005 Çözüm bu olacak.

Önce standart Excel fonksiyonlarıyla bunun yapılamayacağını düşündüm. Ve şöyle bir VBA uygulamasıyla sorunu çözdüm.

Private Sub CommandButton1_Click()
  For i = 2 To 100
    ay = DatePart("m", DateAdd("m", 1, Cells(i - 1, 2)))
    yıl = DatePart("yyyy", DateAdd("m", 1, Cells(i- 1, 2)))
    For k = 28 To 31
      yeni = DateAdd("d", k, "1/" & ay & "/" & yıl)
      If ay <> DatePart("m", yeni) Then Exit For
    Next k
    Cells(i, 2) = DateAdd("d", k, Cells(i - 1, 2))
  Next i
End Sub

Burada A2 ile A100 arasına A1 deki tarih baz alınarak uygun tarihler yerleştirildi.

Ama baktım, bu işte bir gariplik var dedim. Bu kadar basit bir işlemi Excel fonksiyonları çözümlemeli diyerek formüllerimi kurcaladım biraz.

Eğer ToolPak-VBA Çözümleyicisi eklentisi aktif ise sizin formülleriniz içinde de EoMonth formülünü bulacaksınız.

=EoMonth(ReferansTarih,İstenilenAy)

Referans Tarih = Yeni tarihi bulmak için üzerine ilave etmek istediğiniz tarih değeri.

İstenilen Ay = Gün sayısını öğrenmek istediğiniz ayı belirtecek olan ve ReferansTarih ten sonraki ayı belirten Tamsayı değişken.

Bu Durumda

A2 hücresine = A1+EoMonth(A1;1)

A3 hücresine = A2+EoMonth(A2;1) ve bu şekilde devam edildiğinde istenilen çözüm bulunmuş oluyor.

Saygılarımla.

Destek
M.ÖZTÜRK - Y.KARAMAN
Bu siteyi, "Hayatını çocuklarının Ahlâklı ve Dürüst yetişmesi için harcamış olan Cefakar ve Fedakar, Canım ANNEM'e adadım."
Copyright © 1998-2011 M. Temel Korkmaz - Tüm hakları saklıdır.