• DİKKAT

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

Açılır Liste ile Takvim Oluşturma

Katılım
5 Aralık 2010
Mesajlar
29
Excel Vers. ve Dili
Office 2019
Herkese hayırlı günler. Benim bir personel listem var arkadaşlar. Bu personelin takibini yapmak için belge hazırladım. A sütununda isimler, 1 nolu satırda da Ekim ayının tarihleri var. A1 hücresi de boş. Ben açılır liste vasıtası ile ayı ve yılı seçtiğim zaman 1. satırdaki tüm tarihler güncellensin istiyorum. Mümkün müdür?
1. Satırda
b1 1 Ekim
b2 2 Ekim diye gidiyor.
 
Aşağıdaki kod işinizi görür sanırım. A1 hücresine ay ve yılı yazın (Örn. Ekim 2023) sağındaki hücrelere günler sıralanacak.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then
    Dim baslangic As Date
    Dim bitis As Date
    Dim i As Integer
    Cells(1, 2).Resize(1, 32).Value = ""
    baslangic = Range("A1").Value
    bitis = DateSerial(Year(baslangic), Month(baslangic) + 1, 1) - 1
    For i = 0 To (bitis - baslangic)
        
        Cells(1, i + 2).Value = Format(baslangic + i, "d mmmm")
    Next i
End If
End Sub
 
Merhaba,
Alternatif olsun.
B1 hücresine istediğiniz tarihi girin (Örneğin 1 Ekim 2023 için : 1/3/23 ya da 1-3-23 gibi)
B2 :
Kod:
=EĞER(AY($B$1+SATIR(B1))=AY($B$1);$B$1+SATIR(B1);"")
B2 deki formülü istediğiniz kadar alt satıra kopyalayın.
sonraki zamanlarda sadece b1 hücresini değiştirdiğinizde alt satırlar ilgili ayın tarihleri olacaktır.

Hücrede 1 Ekim gibi görünmesini istiyorsanız B sütununu seçin
  • Biçim
  • Hücre biçimlendirme
  • Sayı : İsteğe uyarlanmış
  • Tür : gg aaaa
  • Tamam
 
Aşağıdaki kod işinizi görür sanırım. A1 hücresine ay ve yılı yazın (Örn. Ekim 2023) sağındaki hücrelere günler sıralanacak.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then
    Dim baslangic As Date
    Dim bitis As Date
    Dim i As Integer
    Cells(1, 2).Resize(1, 32).Value = ""
    baslangic = Range("A1").Value
    bitis = DateSerial(Year(baslangic), Month(baslangic) + 1, 1) - 1
    For i = 0 To (bitis - baslangic)
       
        Cells(1, i + 2).Value = Format(baslangic + i, "d mmmm")
    Next i
End If
End Sub

hocam öncelikle ellerinize sağlık. bunu denedim fakat çalıştıramadım. bir buton ekleyip kodları butona yazdım ama çalışmadı.
 
3 nolu mesaj için görüşleriniz nedir?
 
hocam öncelikle ellerinize sağlık. bunu denedim fakat çalıştıramadım. bir buton ekleyip kodları butona yazdım ama çalışmadı.
Benim yazdığım kodda buton eklemenize gerek yok. Yukardaki kodu sayfanın kod bölümüne ekleyin ardından A1 hücresine istediğiniz tarihi yazın kod otomatik çalışacaktır.
 
Hocam ellerinize sağlık fakat sizin yazdığınız kod tam istediğim kod fakat ben tarihi sütuna değil satıra dağıtacağım. Nasıl düzenleyeceğimi anlayamadım.

Zaten satıra yazıyor.
B1 e siz tarihi yazıyorsunuz B2 ye formülü yazıyorsunuz
B2 deki formül aşağıya doğru kopyalıyorsunuz, b3,b4 b....30 gibi,
Siz neyi yanlış yaptınız ki onu anlamadım.
 
Benim yazdığım kodda buton eklemenize gerek yok. Yukardaki kodu sayfanın kod bölümüne ekleyin ardından A1 hücresine istediğiniz tarihi yazın kod otomatik çalışacaktır.


Hocam çok güzel çalıştı ellerinize sağlık. Nokta atış istediğimi yapıyor. Peki ben ilk hücreye tarihi yazdığımda 1. ocak yazıyorum mesela ikinci hücrenin 1. ocak yerine iki ocak ile başlamasını nasıl sağlayabilirim?
 
Son düzenleme:
Koddaki baslangic = Range("A1").Value satırını
baslangic = Range("A1").Value+1
olarak değiştirin.
 
Geri
Üst