İcmale Girilen Derslere İlişkin Liste Oluşturulması

yenilik025

Altın Üye
Katılım
28 Eylül 2005
Mesajlar
233
Excel Vers. ve Dili
2007
Altın Üyelik Bitiş Tarihi
23-06-2027
Hocalarım merhabalar; Yapmaya Çalıştığım
Sınav Proğramı Sayfasına Girdiğim Derslere İlişkin Bilgileri

İcmal sayfasına
Dersin Adı, Tarih ve Sınav Saatlerini ve Sınav Yerini alt alta nasıl çekebilirim ?

Tarih ve Saat dikkate alınarak ?
 

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Merhaba.
Dosyaya yeni bir module ekleyin aşağıdaki kodu kopyalayıp çalıştırın.
Kod:
Sub Test()
    Dim Bak As Integer
    Dim syfPr As Worksheet, syfIc As Worksheet
    Dim Bul As Range
    
    Set syfIc = Worksheets("İcmal")
    Set syfPr = Worksheets("Sınav Programı")
    
    For Bak = 4 To syfIc.Cells(Rows.Count, "C").End(xlUp).Row
        Set Bul = syfPr.Range("C5:M" & syfPr.Cells(Rows.Count, "B").End(xlUp).Row).Find(what:=syfIc.Cells(Bak, "C"), lookat:=xlWhole)
        If Bul Is Nothing Then
            MsgBox syfIc.Cells(Bak, "C") & " adlı ders 'Sınav Programı' sayfasında bulunamıyor. Lütfen kontrol edip yeniden deneyiniz"
            Exit Sub
        Else
            syfIc.Cells(Bak, "D") = syfPr.Cells(Bul.Row, "A")
            syfIc.Cells(Bak, "E") = syfPr.Cells(Bul.Row, "B")
            syfIc.Cells(Bak, "F") = syfPr.Cells(4, Bul.Column)
            
        End If
    Next
End Sub
 

dEdE

Destek Ekibi
Destek Ekibi
Katılım
1 Temmuz 2005
Mesajlar
2,605
Excel Vers. ve Dili
Ofis 2013 TR 64 Bit
Alternatif
Kod:
Sub icmal()
Set ws1 = Sheets("Sınav Programı")
Set ws2 = Sheets("İcmal")
    ss1 = ws1.Cells(Rows.Count, "A").End(3).Row
    Sat = 4
   
    For i = 5 To ss1
        sk = ws1.Cells(i, Columns.Count).End(1).Column
        If sk > 2 Then
        'İKT1 ve İKT2 yi ayıracak net bigi olmadığı için ilgili kod satırı yazılmadı
            ws2.Cells(Sat, 3) = ws1.Cells(i, sk)
            ws2.Cells(Sat, 4) = ws1.Cells(i, 1)
            ws2.Cells(Sat, 5) = ws1.Cells(i, 2)
            ws2.Cells(Sat, 6) = ws1.Cells(4, sk)
            Sat = Sat + 1
        End If
    Next i
End Sub
 
Son düzenleme:

yenilik025

Altın Üye
Katılım
28 Eylül 2005
Mesajlar
233
Excel Vers. ve Dili
2007
Altın Üyelik Bitiş Tarihi
23-06-2027
Alternatif
Kod:
Sub icmal()
Set ws1 = Sheets("Sınav Programı")
Set ws2 = Sheets("İcmal")
    ss1 = ws1.Cells(Rows.Count, "A").End(3).Row
    ss2 = ws2.Cells(Rows.Count, "A").End(3).Row
    Sat = 4
   
    For i = 5 To ss1
        sk = ws1.Cells(i, Columns.Count).End(1).Column
        If sk > 2 Then
        'İKT1 ve İKT2 yi ayıracak net bigi olmadığı için ilgili kod satırı yazılmadı
            ws2.Cells(Sat, 3) = ws1.Cells(i, sk)
            ws2.Cells(Sat, 4) = ws1.Cells(i, 1)
            ws2.Cells(Sat, 5) = ws1.Cells(i, 2)
            ws2.Cells(Sat, 6) = ws1.Cells(4, sk)
            Sat = Sat + 1
        End If
    Next i
End Sub
Hocam burada Sınıf Sayımızı artırdığımızda hangi değeri oynamamız gerekir.

B4-M4 arasında diyelim B1 den b20 YE Kadar artırdık o zaman kodun hangi kısmında oynama yapmalıyız.
 

dEdE

Destek Ekibi
Destek Ekibi
Katılım
1 Temmuz 2005
Mesajlar
2,605
Excel Vers. ve Dili
Ofis 2013 TR 64 Bit
Merhaba,
Kodda bir değişiklik yapmaya gerek yok. İstediğiniz kadar artırabilirsiniz.
 

dEdE

Destek Ekibi
Destek Ekibi
Katılım
1 Temmuz 2005
Mesajlar
2,605
Excel Vers. ve Dili
Ofis 2013 TR 64 Bit
Merhaba,
İlk örneğinizde bu durum öngörülmemişti. :)
Dener misiniz?
Kod:
Sub icmal()
Set ws1 = Sheets("Sınav Programı")
Set ws2 = Sheets("İcmal")
    ss1 = ws1.Cells(Rows.Count, "A").End(3).Row
    Sat = 4
    
For i = 5 To ss1
    sk = ws1.Cells(i, Columns.Count).End(1).Column
    If sk > 2 Then
        For j = 3 To sk
            If ws1.Cells(i, j) <> "" Then
                ws2.Cells(Sat, 3) = ws1.Cells(i, j)
                ws2.Cells(Sat, 4) = ws1.Cells(i, 1)
                ws2.Cells(Sat, 5) = ws1.Cells(i, 2)
                ws2.Cells(Sat, 6) = ws1.Cells(4, j)
            Sat = Sat + 1
            End If
        Next j
    End If
Next i
End Sub
 

yenilik025

Altın Üye
Katılım
28 Eylül 2005
Mesajlar
233
Excel Vers. ve Dili
2007
Altın Üyelik Bitiş Tarihi
23-06-2027
Hocam çok teşekkür ederim gerçekten çok sağolun, uamrım bir çok kişinin de işini görecektir. Bilginize emeğinize sağlık.
 
Üst