• DİKKAT

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

sınıf dağıtımı

Katılım
9 Aralık 2009
Mesajlar
532
Excel Vers. ve Dili
2007,5
Değerli Hocalarım,

sizler sayesinde kodları öğrenmeye çabalıyorum...

Okulumuzda şöyle bir ihtiyacımız var yapabilirmiyiz:

7. sınıfları takrar dağıtıcaz....ama her sınıfa takdir alanlar eşit dağıldığı gibi
kız erkek de eşit dağılacak...

örneğe gerek yok basitce: Adı soyadı puanı cinsiyeti yazılı bir liste düşünün

( 3 veya 4 stun ) biz bunları bir liste halinde topladık diyelim, sizlerden istediğim:

kaç sınıfa dağıtacağını bir yere ( hücreye olabilir) belirtikten sonra dağıt düğmesine basınca, puanı yüksek olanları bir sınıfa deyil, eşit dağıttığı gibi kızı erkeğide eşit dağıtacak...

yani 3,4 stunlu bir tablo var önünüzde, hücrenin birine 8 yazdınız ( 8 sayfaya dağıt) ve dağıt düğmesine basınca, ilk sayfadaki karışik haldeki listeyi, 8 sayfaya dağıtacak. Dağıtırkende puana ve cinsiyete bakacak. ( puanı 70 in üzerinde olanları sınıflara eşit dağıtacak, kız erkek de dengeli dağıtacak.

özetle: 8 dedik ya bu sekiz sınıfta hem yüksek puanlılar hem düşük puanlılar dengeli olduğu gibi, kız erkek de dengeli olacak. yani bir sınıfa tadir alanlar toplanıp diğerlerine tembeller düşmediği gibi birinde kızlar çoğunlukta olamıyacak...

okul adına yardım,,, teşekürler
 
çok teşekkür ederim sayın Hocam,

1. puanı 70 in üzerindeleri eşit dağıtırken, bunun kodunu bulamadım ( bu kriteri değiştirirsek 80 üzerini dengeli dağıt dersek nereyi değiştirecem öğrenmek açısından)
2. bunu yavaş yapabilirmi yani dağıtımı yaparken her birinde yarım saniye gibi beklerse, görürüz ( rastgele seçti o hücre belirgin oldu gördük, sınıfa verdi o hecre bulirgin gördük )

3. şebelere a b diye ismi veren kod satırı neresi anlıyamadım..
4. kızı erkegi ayıran kodu: Range("B3:G" & son).Sort Range("D3"), 2 bu mu hocam

öğrencilik zor hocam, zamanınz musaitse, minaatar olurum
 
Hocam kod önce puan sırasına, sonra cinsiyete göre sıralıyor. Puan barajı koymadım. Başarılıdan başarısıza göre sınıflıyor. Yavaş seçim yapılabilir. Char yazılı satır şube adı veriyor.
 
Yavaş seçim yapılabilir.

ama nasıl nereye ne kodu ekliycez

önce puan sırasına göre sıralıyan kod hangisi hacam
 
Son düzenleme:
Hocam sort yazan satırlar sıralama yapan satırlardır. Siz tam olarak ne istediğiniz madde madde belirtin. Ona göre bir şey hazırlayalım.
 
Hocam, size zahmet olacak,,,kısaca..

1. listede seçtiği ismi belirgin yapıp ( arka planı kırmızı gibi ) yarım veya 1 saniye bekleyip ( o ismin seçildiği görülmesi açısından) listeden sildikten sonra sınıfa atasın .

2. liste ve şubeler bir ekranda görülmesi açısından, biraz küçültüp, şube sayısı girilen hücre ve düğmeyi listenin üstüne taşıyalım ( stun kazanalım ki şubeler ekrana sığsın)

3. bu seçimi not ve cinsiyeti dikkate alarak restgele yapıyor deyilmi, restgele yaptıran kodu merak ettim
 
Başarı sırasına göre atadığından rastgele seçim yok. Yani en başarılı kız A, ikinci başarılı B şubesine gelir. 5 şube olduğunu varsayarsak en başarısız kız C şubesine gelmişse en başarılı erkek D şubesine 2. başarılı erkek E şubesine, 3. başarılı erkek A şubesine.... bu şekilde oluşuyor. Ama eğer rastgele istiyorsanız şube sayısı kadar torba oluşturulup öğrenciler bu torbalardan çektirilebilir.
 
evet, hem rastgele hemde başarılı ve kız erkek dengeli olacak,,,

birde yazdığım 1 ve 2 maddeler

teşekkür
 
hocam çok güzel.....

şubelerin altında yazan puan ortalamalarmı....

subelere korken arka planlar renkli oluyorya...onu direk yazsın ama...listeden seçerken aynı şekilde seçtiği isim renklensin..böylece rastgele seçtiği görülür daha güzel olur..sınıfa atadığıda listede silinsin
 
Hocam E stununa kadar dağıtılmammış listemiz varya...oradan

yani bu asıl listedeki seçtiği hücre arka planı kırmızı olacak, silecek sınıfa atıyacak

(siz sınıfa yazarken arka planı kırmızı yapmışsınız ona gerek yok) bundaki amaç asıl liste üzerinde o an kimi saçtiği görülecekki rastgele olduğu ikna edilecek.

( asıl listenin değişik yerlerindekiler kırmızı olup koyboluyo ve sınıfa yazılıyo, sınıfa atamalar sırayla ama seçimin rastgele olduğu görülecek )

Tabii puan ve cinsiyet eşit dağılımı korunarak

2. L5 den itibaren puan koymuşsunuzya o sınıfın ortalamasımı (kodu hangisi merek ettim)
 
Liste uzun olunca sayfa bir aşağı bir yukarı kayar. Ayrıca seçtiğimiz öğrencinin hangi sinifa atandığı nasil belli olacak. L5 siniflarin puan ort.
 
1.sayfa bir aşağı bir yukarı kayar.

evet hocam , bizde öyle olsun istiyoruz ( biz satır yüksekligini flan düşürürüz) ekran kaysada önemli deyil..
Amaç: listeden rastgele seçildiği ( bir ortadan bir sondan ,kırmızı olup silinmesi) görsel olarak
ispatlanmış olacak, yani gören veli, bu şeçimde torpil yok, rastgele oldu diyebilmeli...

2.Ayrıca seçtiğimiz öğrencinin hangi sinifa atandığı nasil belli olacak ?

Hocam, listeden bir yer seçince kırmızı olacakya (sonra listeden o ismi silecek)
sınıfa yazarken bir yarım bir saniye bekleyince sınıfın altına yazıldığı belli olur( veya oda yazarken şimdiki haliyle kırmızı kabilir.

3 .L5 siniflarin puan ort. (bunu yaptıran kodu merek ettim)
 
Merhaba,
Dosyayı inceleyiniz.
Range(Cells(3, 12), Cells(3, 11 + şube)) = "=SUMPRODUCT(--(ISNUMBER(MATCH($BC5:$BC1000,L5:L100,0))),($BE5:$BE1000))/COUNTA(L5:L100)"
Bu formül ile oluşan sınıfların ortalaması hesaplanıyor.

http://www.dosya.tc/server32/OyOsJG/YeniListe.rar.html

adresinden indiriniz.
 

Ekli dosyalar

Hocam yaptığınız çalışmayı kullandım. Elinize sağlık çok işimize yaradı. Bir sorum olacak izin verirseniz. Dağıtım yapıldıktan sonra oluşan listede isimlere artı olarak numaraların da görünmesini nasıl sağlarız ? Teşekkürler...
 
Hocam kodu deneyiniz.
Sub Sınıfla()
Application.ScreenUpdating = False
Range("L:Z") = ""
Range("M2:Z2").UnMerge
Range("L4:Z4").UnMerge
Range("L:Z").Font.ColorIndex = 1
Range("L:Z").Interior.ColorIndex = 2
Range("L:Z").Borders.LineStyle = 0
Range("K3:K5") = ""
Range("K3:K5").Borders.LineStyle = 0
son = Cells(Rows.Count, 5).End(3).Row
Range("G3:G" & son) = "=ROW(A1)"
Range("G3:G" & son) = Range("G3:G" & son).Value
Range("A3:A" & son) = "=RAND()"
Range("A3:G" & son).Sort Range("A3"), 2
Range("A3:A" & son) = "=ROW(A1)"
Range("A3:A" & son) = Range("G3:G" & son).Value

Range("B3:G" & son).Sort Range("E3"), 2
Range("B3:G" & son).Sort Range("D3"), 2
Range("F3:F" & son) = "=IF(MOD(ROW(A1),I$2)=0,I$2,MOD(ROW(A1),I$2))"
Range("F3:F" & son) = Range("F3:F" & son).Value

Range(Cells(2, 13), Cells(2, 11 + Range("I2"))).Merge
Range(Cells(4, 12), Cells(4, 11 + Range("I2"))).Merge

Range(Cells(7, 12), Cells(7, 11 + Range("I2"))) = "=CHAR(64+COLUMN(A1)) & "" ŞUBESİ"""
Range(Cells(7, 12), Cells(7, 11 + Range("I2"))).Interior.ColorIndex = 4
Range(Cells(7, 12), Cells(7, 11 + Range("I2"))).Borders.LineStyle = 1
Range(Cells(2, 12), Cells(2, 11 + Range("I2"))).Borders.LineStyle = 1
Range(Cells(4, 12), Cells(4, 11 + Range("I2"))).Borders.LineStyle = 1
Range(Cells(7, 12), Cells(7, 11 + Range("I2"))) = Range(Cells(7, 12), Cells(7, 11 + Range("I2"))).Value


adet = Cells(Rows.Count, 5).End(3).Row - 2
a = WorksheetFunction.RoundUp(adet / Range("I2"), 0)
Range(Cells(3, 51), Cells(3 + Cells(2, 9) - 1, 51)) = "=rand()"
baş = 3
For i = 1 To a
Range(Cells(3, i + 51), Cells(3 + Cells(2, 9) - 1, i + 51)) = Range(Cells(baş, 3), Cells(baş + Cells(2, 9) - 1, 3)).Value
Range(Cells(3, 51), Cells(3 + Cells(2, 9) - 1, i + 51)).Sort Cells(3, 51)
baş = baş + Cells(2, 9)

Next
Range("AY:AY") = ""


Application.ScreenUpdating = True
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollRow = 1
For i = 1 To son - 2
Range("L2:L4") = ""
Range("L8:Z1000").Interior.ColorIndex = 2
Range("L8:Z1000").Font.ColorIndex = 1
kac = WorksheetFunction.Match(i, Range("A2:A" & son), 0)
isim = Range("C1").Offset(kac, 0)
num = Range("B1").Offset(kac, 0)
Range("M2") = isim
Range("L2") = num
basla = Timer
Do While Timer < basla + 1
DoEvents
Loop

süt = Range("AZ3:BZ1000").Find(isim).Row + 9
sat = Cells(Rows.Count, süt).End(3).Row + 1
Cells(sat, süt) = isim
Cells(sat, süt).Interior.ColorIndex = 3
Cells(sat, süt).Font.ColorIndex = 2
Cells(sat, süt).Borders.LineStyle = 1
Range("L4") = Range("K7").Offset(0, süt - 11)

basla = Timer
Do While Timer < basla + 1
DoEvents
Loop

Next
Application.ScreenUpdating = False
Range("B3:G" & son).Sort Range("G3"), 1
Range("A:A") = ""
Range("F:G") = ""
Range("L8:Z1000").Interior.ColorIndex = 2
Range("L8:Z1000").Font.ColorIndex = 1
Range("AZ:BZ") = ""
Range("L:Z").UnMerge
Range("L2:L4") = ""
Range("L2:Z4").Borders.LineStyle = 0
ActiveWindow.ScrollRow = 2

Range(Cells(3, 12), Cells(3, 11 + Range("I2"))) = "=SUMPRODUCT(--(ISNUMBER(MATCH($C3:$C1000,L8:L100,0)))*($D3:$D1000=""K""))"
Range(Cells(4, 12), Cells(4, 11 + Range("I2"))) = "=SUMPRODUCT(--(ISNUMBER(MATCH($C3:$C1000,L8:L100,0)))*($D3:$D1000=""E""))"
Range(Cells(5, 12), Cells(5, 11 + Range("I2"))) = "=SUMPRODUCT(--(ISNUMBER(MATCH($C3:$C1000,L8:L100,0))),($E3:$E1000))/COUNTA(L8:L100)"

Range(Cells(3, 12), Cells(5, 11 + Range("I2"))) = Range(Cells(3, 12), Cells(5, 11 + Range("I2"))).Value
Range(Cells(3, 11), Cells(5, 11 + Range("I2"))).Borders.LineStyle = 1
Cells(3, 11) = "KIZ"
Cells(4, 11) = "ERKEK"
Cells(5, 11) = "PUAN"
ActiveWindow.ScrollColumn = 11
End Sub
 
Geri
Üst