• DİKKAT

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

Tarih Atama (Sıralama), 8'li Blok Olarak

Katılım
5 Kasım 2007
Mesajlar
4,727
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Merhaba,

E1'den seçilen yıl ve G1'den seçilen aydan itibaren (seçilen ay dahil) A2:B aralığına Tarihleri ve Departmanları 8 er bloklu olarak getirmek istiyorum,

Örneğin ;

E1 den 2011, G1 den Ocak seçildiğinde A2, 01.01.2011 den başlayıp A2:A2920 aralığına tüm yılı yazmalı,

E1 den 2011, G1 den Ekim seçildiğinde A2, 01.10.2011 den başlayıp A2:A736 aralığına Ekim-Kasım-Aralık aylarını yazmalı,

Bu işlem yapılırken aynı zamanda B sütununu da almalı

Teşekkür ederim.
 

Ekli dosyalar

Tarih Doldurma

Merhaba,

Alternatifleri de olabilir, kodları deneyiniz.

Kod:
Sub DoldurSekizli()
    Dim Tarih   As Date, _
        STarih  As Date, _
        i       As Integer, _
        j       As Integer, _
        Grp     As Integer, _
        Son     As Integer, _
        BlokAdt As Integer, _
        Dizi
    
    Dizi = Array("A1", "A2", "A3", "A4", "B", "C1", "C2", "C3", "D3")
    BlokAdt = UBound(Dizi) + 1
    
    Son = Cells(Rows.Count, "A").End(3).Row + 1
    
    Tarih = DateSerial(Year(Range("G1")), Month(Range("G1")), 1)
    STarih = DateSerial([E1], 12, 31)
    i = 2
    Application.ScreenUpdating = False
    
    Range("A2:B" & Son).ClearContents
    
    Do While Tarih < STarih
        j = i + BlokAdt - 1
        Cells(i, "A") = Tarih
        Cells(i, "B").Resize(BlokAdt, 1) = Application.WorksheetFunction.Transpose(Dizi)
        Range("A" & i & ":A" & j).FillDown
        i = i + BlokAdt
        Tarih = Tarih + 1
    Loop
    Application.ScreenUpdating = True
    MsgBox "Liste Tamlandı...", vbInformation, "N. YEŞERTENER --> [URL="http://www.excel.web.tr"]www.excel.web.tr[/URL]"
    
End Sub
 
Son düzenleme:
Merhaba,

Alternatifleri de olabilir, kodları deneyiniz.

Kod:
Sub DoldurSekizli()
    Dim Tar As Date, _
        i   As Integer, _
        j   As Integer, _
        Grp As Integer, _
        Dizi
    
    Dizi = Array("A1", "A2", "A3", "A4", "B", "C1", "C2", "C3")
    
    
    Tar = Range("G1")
    i = 2
    
    Do While Year(Tar) = [E1]
        j = i + 7
        Cells(i, "A") = Tar
        Cells(i, "B").Resize(8, 1) = Application.WorksheetFunction.Transpose(Dizi)
        Range("A" & i & ":A" & j).FillDown
        i = i + 8
        Tar = Tar + 1
    Loop
    MsgBox "Liste Tamlandı...", vbInformation, "N. YEŞERTENER --> [URL="http://www.excel.web.tr/"]www.excel.web.tr[/URL]"
    
End Sub

Sayın Necdet YEŞERTENER, merhaba,

İlginiz ve çözüm için çok teşekkür ederim,

Saygılarımla.
 
Sayın 1Al2Ver,

Kodlarda satır silmeyi unutmuşum, onu da eklemiştim. Düzeltilmiş hali yine ilk mesajımda, bilgilendireyim dedim.
 
Sayın 1Al2Ver,

Kodlarda satır silmeyi unutmuşum, onu da eklemiştim. Düzeltilmiş hali yine ilk mesajımda, bilgilendireyim dedim.

Necdet bey tekrar merhaba,

Ben mesajımda bu konuyu atlamışım, size de dönüp "silme işlemini de yaparmısınız" diyemedim, kendim bir SİL düğmesi koymuştum, ancak siz düşünüp eklemişsiniz ve böylece 2 düğme tıklamaktan kurtulmuş oldum,

Ne kadar teşekkür etsem azdır, sağolun,

Saygılarımla.
 
Necdet bey tekrar merhaba,

Ben mesajımda bu konuyu atlamışım, size de dönüp "silme işlemini de yaparmısınız" diyemedim, kendim bir SİL düğmesi koymuştum, ancak siz düşünüp eklemişsiniz ve böylece 2 düğme tıklamaktan kurtulmuş oldum,

Ne kadar teşekkür etsem azdır, sağolun,

Saygılarımla.

Güle güle kullanınız.

Ben kodları yine değiştirdim :) olaki gelecek yılları da kapsayan tarih serisi oluşturmak istersiniz diye.

Kodlar daha genel amaçlı oldu.
Tekrar alabilirsiniz.
 
doğru... düzelmiş dosya ekde

Tekrar merhaba,

Çok teşekkür ederim, sorun yok,

Mümkünse bir cevap daha rica ediyorum,

Sabitlerdeki Departman sayısını 8'den 10 yada 15'e çıkardığımda, kodda nerede bir düzenleme yapmam gerekir ?

Teşekkür ederim.
 
Güle güle kullanınız.

Ben kodları yine değiştirdim :) olaki gelecek yılları da kapsayan tarih serisi oluşturmak istersiniz diye.

Kodlar daha genel amaçlı oldu.
Tekrar alabilirsiniz.

Necdet bey tekrar merhaba,

Çok teşekkür ederim,

Şayet bende hata yok ise ;

2 nci mesajdaki kodu kopyaladım, ancak 2012 ve Aralık aylarında sorun var, ister 2011 ister 2012 seçeyim Aralık ayı gelmiyor,

2012 de diğer aylarda tarih 2011 olarak görülüyor,
 
Necdet bey tekrar merhaba,

Çok teşekkür ederim,

Şayet bende hata yok ise ;

2 nci mesajdaki kodu kopyaladım, ancak 2012 ve Aralık aylarında sorun var, ister 2011 ister 2012 seçeyim Aralık ayı gelmiyor,

2012 de diğer aylarda tarih 2011 olarak görülüyor,

Merhaba,

Necdet bey'in kodlarını aşağıdakilerde değiştirerek denermisiniz.

Kod:
Sub DoldurSekizli()
 
    Dim Tarih   As Date, _
        i       As Long, _
        j       As Long, _
        Dizi
 
    Dizi = Array("A1", "A2", "A3", "A4", "B", "C1", "C2", "C3")
 
    Tarih = CDate("1." & Month([G1]) & "." & [E1])
    i = 2
    Application.ScreenUpdating = False
 
    Range("A2:B" & Rows.Count).ClearContents
 
    Do Until Tarih = CDate(("1.1." & [E1] + 1))
        j = i + 7
        Cells(i, "A") = Tarih
        Cells(i, "B").Resize(8, 1) = WorksheetFunction.Transpose(Dizi)
        Range("A" & i & ":A" & j).FillDown
        i = i + 8
        Tarih = Tarih + 1
    Loop
 
    Application.ScreenUpdating = True
    MsgBox "Liste Tamlandı...", vbInformation, _
                    "N. YEŞERTENER --> [URL="http://www.excel.web.tr"]www.excel.web.tr[/URL]"
 
End Sub
.
 
Ömer bey merhaba,

İlginiz için teşekkür ederim,

Kod ; Yılı 2012, ayı Aralık seçersem, 2011 Aralık ayından itibaren 2012 yılının Aralık ayı sonuna kadar sıralıyor,

Başka bir deyişle, hangi ay seçili ise o aydan itibaren seçili yıla göre sıralıyor,

2011 yılında sorun yok,

Teşekkür ederim.
 
Merhaba,

Tam forumdan çıkarken bir çok değişiklikler yapınca arada yanlışlıklar olmuş :)

İlk mesajımda hem hataları düzelttim hem blok adededini otomatik hale getirdim.

Siz sadece :

Kod:
Dizi = Array("A1", "A2", "A3", "A4", "B", "C1", "C2", "C3", "D3")

koduna ekleme ya da çıkartma yapmanız yeterli olacaktır.

Ayrıca G1 hücresine yazdığınız tarihte sanırım sadece Ay önemli, bu durumda günü yanlış ta yazsanız kodları ilgili ayın ilk gününden başlıyor.

Güle güle kullanınız.
 
Merhaba,

Tam forumdan çıkarken bir çok değişiklikler yapınca arada yanlışlıklar olmuş :)

İlk mesajımda hem hataları düzelttim hem blok adededini otomatik hale getirdim.

Siz sadece :

Kod:
Dizi = Array("A1", "A2", "A3", "A4", "B", "C1", "C2", "C3", "D3")

koduna ekleme ya da çıkartma yapmanız yeterli olacaktır.

Ayrıca G1 hücresine yazdığınız tarihte sanırım sadece Ay önemli, bu durumda günü yanlış ta yazsanız kodları ilgili ayın ilk gününden başlıyor.

Güle güle kullanınız.

Merhaba Necdet bey,

Bir kez daha teşekkür ederim,

Ancak Tarih bloğunda Ömer beyin çözümüne verdiğim sorun devam ediyor,

Örneğin ; 2012 yılı ve Aralık seçildiğinde sıralama 2011 Aralık ayından başlıyor 2012 Aralık ayında bitiyor, bu 2012 için tüm aylarda geçerli,

2011 de bu sorun yaşanmıyor,

Tekrar bakıp değerlendirirseniz memnun olurum,

Teşekkür ederim.
 
Sayın 1Al2Ver,

G1 hücresine yazdığınız tarih 2011 yılına ait bu yüzden de hep bu tarihten başlayacak mantığını kurdum.

Oysa siz oraya sadece bir ay adı olarak gördüğünüz söylemiş olsaydınız, kodlar ona göre düzelirdi.

Oradaki yılı 2012 yazdığnızda benim kodlarımda bir değişiklik yapmanıza gerek kalmayacaktı.
 
Ömer bey merhaba,

İlginiz için teşekkür ederim,

Kod ; Yılı 2012, ayı Aralık seçersem, 2011 Aralık ayından itibaren 2012 yılının Aralık ayı sonuna kadar sıralıyor,

Başka bir deyişle, hangi ay seçili ise o aydan itibaren seçili yıla göre sıralıyor,

2011 yılında sorun yok,

Teşekkür ederim.

#12 numaralı mesajı düzenledim.
 
Sayın 1Al2Ver,

G1 hücresine yazdığınız tarih 2011 yılına ait bu yüzden de hep bu tarihten başlayacak mantığını kurdum.

Oysa siz oraya sadece bir ay adı olarak gördüğünüz söylemiş olsaydınız, kodlar ona göre düzelirdi.

Oradaki yılı 2012 yazdığnızda benim kodlarımda bir değişiklik yapmanıza gerek kalmayacaktı.

Merhaba Necdet bey,

Anladım, haklısınız, bir detay hatası,

Dosyayı bu mantıkla çalıştıra bilirim, sorun olmaz,

Tekrar teşekkür ederim.

Saygılarımla.
 
Geri
Üst