• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Ay a ait günler..!

Katılım
10 Ekim 2010
Mesajlar
1,469
Excel Vers. ve Dili
2010 Türkçe
Merhaba
Ek dosyada ocak yazan yere hangi ay ismi yazılırsa ya da comboboxta veya ad tanımla ile de olabilir hangi ay ismi seçilirse B5:B35 ve B37:B67 arasına o aya ait günleri getirmesi gerekiyor. Ad tanımlama ile yapmaya çalıştım olmadı. Sizlerden daha çok yardım almam gerekmekte olduğunu öğrendim.
Yardımcı olabilir misiniz?
 

Ekli dosyalar

  • ay.xls
    ay.xls
    26.5 KB · Görüntüleme: 16
Merhaba,

Aşağıdaki kodları ilgili sayfanın kod bölümüne kopyalayıp deneyiniz.

B2 hücresine metin değil ilgili ayın herhangi bir gününü içeren tarih giriniz. Biçimi aaaa olarak ayarlandığından Ay adını gösterecektir.

B2 hücresi değiştiğinde günler listelenir.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    
    Dim Tarih   As Date
    Dim i       As Integer
    
    If Intersect(Target, [B2]) Is Nothing Then Exit Sub
    
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
    End With
    
    Range("B5:B35,B37:B67").ClearContents
    
    Tarih = DateSerial(Year(Range("B2")), Month(Range("B2")), 0) + 1
    i = 5
    
    Do
        Cells(i, "B") = Tarih
        Cells(i + 32, "B") = Tarih
        i = i + 1
        Tarih = Tarih + 1
    Loop While Month(Tarih) = Month(Range("B2"))
    
    With Application
        .ScreenUpdating = True
        .EnableEvents = True
    End With
    
End Sub
 

Ekli dosyalar

  • ay.rar
    ay.rar
    10.4 KB · Görüntüleme: 23
Merhaba Necdet Bey
İlginiz için çok teşekkür ediyorum. Çok güzel bir çalışma olmuş, bir şey dikkatimi çekti, neden ay adını yazmıyorum da aya ait bir tarih yazıyorum merak etmeden olmadı.
Bu yaptığınızda çok güzel ama Keşke ay isimlerine göre uyarlamış olsaydık mesela Ocak 1985 gibi yazılabilir. Bana göre daha çekici olurdu. Mümkünse bu şekilde uyarlaya bilir miyiz?
Çok teşekkür ediyorum İyi akşamlar efenim.
 
Tamam nejdet Bey İstediğim gibi de oluyor. Konu çözülmüştür.
Elinbize Bilginize sağlık İiy akşamlar dilerim.
 
Alternatif, Formül ile çözüm dosyası eklidir.
 

Ekli dosyalar

  • ay.xls
    ay.xls
    28.5 KB · Görüntüleme: 19
Merhaba,
Sayın turist ilginiz için teşekkür ederim, her iki çözümünde özelliği hemen hemen aynı, çok güzel. İlginiz için teşekkürler. İyi çalışmalar dilerim.
 
Merhaba, Necdet Bey,
B2 hücresinde Şubat yazıyorsa B4 hücresinde Ocak yazdıra bilinir mi? Yani B4 hücresi B2 Hücresinden sürekli olarak 1 ay geriden gelmesi gerekiyor. Ancak B2 de Ocak Yazıyorsa yıllardan 2013 isek B4 hücresinde 2012 > 2013 yazmalı. 2014 olduğunda da ocak yazıyorsa 2013 > 2014 yazmalı. Yazdığınız kodlara bu özelliği de kazandırabilir miyiz?
Umarım açıklayıcı olmuşumdur.
 
Merhaba,

B4 hücresine aşağıdaki fonksiyonu yazıp özel hücre biçiminden aaaa olarak biçimlendirin.

Kod:
=TARİH(YIL(B2);AY(B2)-1;1)

İlla kodla olsun derseniz Kırmızı ile işaretlediğim satırı ekleyiniz.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
 
    Dim Tarih   As Date
    Dim i       As Integer
 
    If Intersect(Target, [B2]) Is Nothing Then Exit Sub
 
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
    End With
 
    Range("B5:B35,B37:B67").ClearContents
 
    Tarih = DateSerial(Year(Range("B2")), Month(Range("B2")), 0) + 1
[B][COLOR=red]    Range("B4") = Format(DateSerial(Year(Range("B2")), Month(Range("B2") - 1), 1), "mmmm")[/COLOR][/B]
 
    i = 5
 
    Do
        Cells(i, "B") = Tarih
        Cells(i + 32, "B") = Tarih
        i = i + 1
        Tarih = Tarih + 1
    Loop While Month(Tarih) = Month(Range("B2"))
 
    With Application
        .ScreenUpdating = True
        .EnableEvents = True
    End With
 
End Sub
 
Merhaba Necdet Bey,
Kodu denedim, şubat yazdığında ocak yazıyor, ama ocak yazdığında B4 de aralık yazıyor. Ocak yazdığında şöyle olmalı örneğin 2013 yılında olduğumuzu kabul ederek B2 ocak ise, B4 2012 > 2013 şeklinde olmalıydı.

İlginiz için, Teşekkür ediyorum.

İyi çalışmalar dilerim.
 
Geri
Üst