• DİKKAT

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

Okul Listesinden Sınıf listelerini oluşturmak

Katılım
12 Ağustos 2007
Mesajlar
301
Excel Vers. ve Dili
2003 türkçe
2016 türkçe
Arkadaşlar form içinde aradım ancak tam istediğimi bulamadım. Ekli dosyada okul sayfasında öğrenci numara ve isimleri var. Liste sayfasında örneğin b3 hücresine 5A yazınca okul sayfasından 5a sınıfında olanları 6c yazınca 6c sınıfında olanları listeletmek istiyorum. Tüm okulu düşününce kopyala yapıştır uzun sürüyor. Ekli dosyada sınıf isimlerini örnek olarak yazdım. Yardımcı olursanız sevinirim. Teşekkürler.
 

Ekli dosyalar

Son düzenleme:
Sub sınıfla()
For i = 2 To 7
Range("A1").AutoFilter Field:=1, Criteria1:=Cells(i, 4)
son = Range("A10000").End(3).Row
Sheets("Liste").Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = Sheets("OKUL").Cells(i, 4)
Sheets("OKUL").Range("A2:C" & son).Copy Range("B3")
Sheets("OKUL").Select
Next
Range("A1").AutoFilter
End Sub


Dosyada ad tanımalama olduğundan hata verecektir. Ad tanımlamayı temizleyiniz.
 
Son düzenleme:
Sub sınıfla()
Application.DisplayAlerts = False
For i = 8 To 3 Step -1
Sheets(i).Delete
Next

For i = 2 To 7
Range("A1").AutoFilter Field:=1, Criteria1:=Cells(i, 4)
son = Range("A10000").End(3).Row
Sheets("Liste").Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = Sheets("OKUL").Cells(i, 4)
Sheets("OKUL").Range("A2:C" & son).Copy
Range("B3").PasteSpecial (xlPasteValues)
Sheets("OKUL").Select
Next
Range("A1").AutoFilter
End Sub
Kodları bununla değiştiriniz.
 
Kodları bununla değiştiriniz.

Sayın okumuş benim eklediğim dosyada 6 7 8. sınıflar üstelik a b c d şubeleriyle birlikte ayrı ayrı olacak. Dosyanın tamamını ekleyemedim. Yani liste sayfasında B3 hücresine 6A yazınca No ve Adı Soyadı okul sayfasından gelmeli, B44 hücresine 5A yazınca da o sayfada 5A sınıfının isim ve diğerleri olmalı, bu diğer sınıflar için de geçerli olmalı. Ayrıca sizin hazırladığınız kodları çalıştıramadım. Saygılar ve ilginize teşekkürler.
 
Okul sayfasında D sütununa Sınıf adlarını ekleyiniz.
Sub Sınıfla()
Application.ScreenUpdating = False
Application.DisplayAlerts = False

For i = Sheets.Count To 3 Step -1
Sheets(i).Delete
Next

For i = 2 To Range("D100").End(3).Row
Range("A1").AutoFilter Field:=1, Criteria1:=Cells(i, 4)
son = Range("A10000").End(3).Row
Sheets("Liste").Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = Sheets("OKUL").Cells(i, 4)
Sheets("OKUL").Range("A2:C" & son).Copy
Range("B3").PasteSpecial (xlPasteValues)
Sheets("OKUL").Select
Next
Range("A1").AutoFilter
End Sub
 
Son düzenleme:
Sayın Okumuş, ilginize ve bilginize teşekkürler. Çalışmanız çok işime yarayacaktır muhakkak. Benim de uğraşarak yarım da olsa hazırladığım ekli dosyada birinci bölümde formüller çalıştı , ancak ikinci bölümü çalıştıramadım. açılan listeden değil de A44 hüresine sınıf adı yazarak formül nasıl düzenlenebilir acaba? Teşekkürler
 

Ekli dosyalar

Aslında formüller dosyanızda var.
B2 Hücresine

=EĞER(SATIR(A1)>EĞERSAY(OKUL!$A$1:$A$10000;$A$2);"";İNDİS(OKUL!B$1:B$1000;KÜÇÜK(EĞER(OKUL!$A$1:$A$1000=$A$2;SATIR(A$1:A$1000));SATIR(A1))))

formülünü uygulayınız. Dizi formülüdür. A sütunundaki sınıf adı hangi satırda ise B sütunundaki o hücreyi formülünü yapıştırınız
Diğer sınıf 44. satırda olduğu için

=EĞER(SATIR(A1)>EĞERSAY(OKUL!$A$1:$A$10000;$A$44);"";İNDİS(OKUL!B$1:B$1000;KÜÇÜK(EĞER(OKUL!$A$1:$A$1000=$A$44;SATIR(A$1:A$1000));SATIR(A1))))

şeklinde olacaktır. Diğer sınıflar için formülde sadece $A$44 olan yerleri değiştirin.

Dizi formülü olduğunu unutmayınız.
 
Son düzenleme:
Sayın Okumuş Sayenizde hem ihtiyacım olan formülü öğrendim hem de dizi formülünün normal formüller gibi kopyalanamayacağını öğrendim. Emeğinize ve bilginize teşekkür ediyorum. Sağolun.
 
Geri
Üst