SENELERİ OTOMATİK ATAMA

yamahato

Altın Üye
Katılım
20 Mayıs 2009
Mesajlar
233
Excel Vers. ve Dili
excel 2007
Altın Üyelik Bitiş Tarihi
30-09-2026
Merhaba iyi geceler
Basit bir excel sayfam var. Beni çok uğraştıran bir durum var şöyle ki.
iki yıl yazdığımda arasında ki yılları otomatik olarak yazabilecek bir koda ihtiyacım var.
Şöyle ki.
A1 hücresine 2000-2016 yazdığımda B1 hücresine 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 yazdırmak için nasıl bir kod kullanmamız gerekiyor. Yani a1 hücresine girilen tarihlar arasında ki tarihleri (a1 hücresine girilen tarihler dahil) b1 hücresine yazılmasını sağlamam lazım.
 
Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,245
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

C++:
Option Explicit

Sub Test()
    Dim My_Year As Variant, X As Integer, Y As Integer
    
    If InStr(Range("A1").Value, "-") = 0 Then
        MsgBox "Lütfen yıl aralığı giriniz!", vbCritical
        Exit Sub
    End If
    
    My_Year = Split(Range("A1").Value, "-")
    
    If Val(My_Year(1)) < Val(My_Year(0)) Then
        MsgBox "Son yıl ilk yıldan küçük olmamalıdır!", vbCritical
        Exit Sub
    End If
    
    ReDim Year_List(1 To 1)
    
    For X = My_Year(0) To My_Year(1)
        Y = Y + 1
        ReDim Preserve Year_List(1 To Y)
        Year_List(Y) = X
    Next

    Range("B1").Value = Join(Year_List(), " ")

    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 

yamahato

Altın Üye
Katılım
20 Mayıs 2009
Mesajlar
233
Excel Vers. ve Dili
excel 2007
Altın Üyelik Bitiş Tarihi
30-09-2026
Koray hocam bunu formul olarak yapabilirmiyiz. Vba kodu olarak değilde?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,245
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Tek hücrede sıkıntılı olur. Alt alta listelensin derseniz olabilir. (2007 sürüm kullandığınız için bu yorumu yapıyorum.)
 

yamahato

Altın Üye
Katılım
20 Mayıs 2009
Mesajlar
233
Excel Vers. ve Dili
excel 2007
Altın Üyelik Bitiş Tarihi
30-09-2026
Koray hocam diğer bilgisayarımda office standar 2019 yüklü. Sorunumu çözebilirsek onda yaparım.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Eğer 365 versiyonun kullanmış olsaydınız. Bu işlemi fonksiyonlarla yapmak çok kolay olurdu. Aşağıdaki resimde bir örnek hazırladım. Eski versiyonlarda dizi fonksiyonu oluşturarak ta çözülebileceğini düşünüyorum.

=METİNBİRLEŞTİR(" ";DOĞRU;SIRALI(1;SAĞDAN(A1;4)-SOLDAN(A1;4)+1;SOLDAN(A1;4);1))

Not: 2019 versiyonunda da çalışır sanırım.

240792
 

yamahato

Altın Üye
Katılım
20 Mayıs 2009
Mesajlar
233
Excel Vers. ve Dili
excel 2007
Altın Üyelik Bitiş Tarihi
30-09-2026
Levent hocam hata verdi (geçersiz ad hatası)
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,245
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
METİNBİRLEŞTİR fonksiyonu sizin kullandığınız sürümde varsa alternatif olarak ekteki dosyayı kullanabilirsiniz.

Dosyada iki sayfa var. Birinci sayfada yardımcı sütun kullanılarak sonuca gidilmiştir. Eski sürümlerde kullanılabilir. İkinci sayfada ise yeni sürümlerde kullanabileceğiniz alternatif çözüm bulunmaktadır.
 

Ekli dosyalar

Üst