• DİKKAT

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

TAMAMEN RASTLANTISAL SIRALAMA

Katılım
18 Nisan 2017
Mesajlar
112
Excel Vers. ve Dili
2016 c++
Arkadaşlar c sütünundaki isimleri tamamen rastlantısal olarak d sütünuna nasıl sıralayabilirim? şayet rastlantısal olmuyorsa adı soyadı sütüununda soy adının ikinci harfine göre sıralanada bilir?
 

Ekli dosyalar

Aşağıdaki makroyu deneyiniz:

Kod:
Sub rastgele()
son = WorksheetFunction.Max(2, Cells(Rows.Count, "C").End(3).Row)
Range("D2:D" & son).ClearContents
For i = 2 To son
10:
    say = WorksheetFunction.RandBetween(2, son)
    If WorksheetFunction.CountIf(Range("D2:D" & son), Cells(say, "C")) = 0 Then
        Cells(i, "D") = Cells(say, "C")
    Else
        GoTo 10
    End If
Next
End Sub
 
üstadlar ellerinize sağlık inanın milyonlara değişmem bu platformu. birbirini hiç tanımayan insanlar 10 dk içinde sorun çözüyor hepinize saygılar
 
SAYIN YUSUF44 VE yanginci34 üstadlar. rastlantısal isim karma ile ilgili bir yardımınız dokunmuştu. aynı dosyada bir değişiklik yapıp ekledim. şu mümkün mü? örneğin genel liste çalışma sayfasını karıştırdık. bu öğrencileri yanyana aynı sınıf gelmemek şartına göre sınıflara 23 er kişi olarak atayabilir mi? ekli dosyada 9AB çalışma sayfasına ben el ile yazdım. 9AB çalışma sayfasından örnekle b14 hücresi ile c14 hücresinde olduğu gibi aynı sınıf düzeyinde olan öğrenciler yanyana gelmeyecek şekilde rastlantısal yerleşebilir mi? yani 9 sınıfın yanında 10 11 12 oturabilir ,9 oturamaz gibi
 

Ekli dosyalar

Tam olarak istediğiniz gibi mi bilmiyorum. Aşağıdaki makroyu hazırladım ancak hiç sonucunu göremedim maalesef. Çünkü her çalıştırdığımda excel dondu ve yeniden başlatmak zorunda kaldım. Hatta son değişkenini 30 yapıp çalıştırdığımda bile excel dondu. Sizde çalışır inşallah:

Kod:
Sub salonlar()
Set s1 = Sheets("GENEL LİSTE")
son = s1.Cells(Rows.Count, "A").End(3).Row
'son = 30
For salon = 1 To Sheets.Count
    If WorksheetFunction.CountBlank(s1.Range("D2:D" & son)) = 0 Then
        MsgBox "Boşta kalan öğrenci bulunmamaktadır!"
        Exit Sub
    End If

    If Sheets(salon).Name <> s1.Name Then
        For küme = 2 To 8 Step 3
            For sıra = 14 To 22 Step 2
10:
                öğrenci1 = WorksheetFunction.RandBetween(2, son)
                If s1.Cells(öğrenci1, "D") <> "" Then
                    Sheets(salon).Cells(sıra, küme) = s1.Cells(öğrenci1, "C") & _
                        Chr(10) & s1.Cells(öğrenci1, "B") & Chr(10) & s1.Cells(öğrenci1, "A")
20:
                        öğrenci2 = WorksheetFunction.RandBetween(2, son)
                        If s1.Cells(öğrenci2, "D") <> "" And s1.Cells(öğrenci2, "A") <> s1.Cells(öğrenci1, "A") Then
                            Sheets(salon).Cells(sıra, küme + 1) = s1.Cells(öğrenci2, "C") & _
                                Chr(10) & s1.Cells(öğrenci2, "B") & Chr(10) & s1.Cells(öğrenci2, "A")
                        Else
                            GoTo 20
                        End If
                Else
                    GoTo 10
                End If
            Next
        Next
    End If
Next

If WorksheetFunction.CountBlank(s1.Range("D2:D" & son)) > 0 Then
    MsgBox "Öğrenci dağıtımı tamamlandı ancak boşta kalan öğrenci(ler) var!"
Else
    MsgBox "Öğrenci dağıtımı tamamlandı"
End If

End Sub
 
yusuf hocam kodu hangi çalışma sayfasına yapıştıralım. genel kısmında karıştırma makrosu var onun altına mı yapıştıralım?
 
Modüle yapıştırmanız daha iyi olur.
 
"çalışmadı" derken neyi kastettiniz? Hata mı verdi, bendeki gibi dondu mu veya başka bir sorun mu?
 
Kodları kopyalayın
Excel dosyasındayken Alt+F11 yaparak VBA bölümünü açın
Insert menüsünden Module'yi seçin
Açılan sayfaya kodları yapıştırın
Excel sayfasına geçin
Genel liste sayfasındaki Karıştır düğmesi gibi bir düğme daha ekleyin
Eklediğiniz düğmeye sağ tıklayıp makro ata deyin
Açılan menüde salonlar makrosunu seçin
Bu düğmeye bastığınızda makro çalışacaktır.
 
Daha önce de belirttiğim gibi bende de aynısı oluyor maalesef. Neden bilmiyorum. :(
 
Merhaba ben dosyanıza farklı bir yaklaşımla veri sayfasını düzenledim
inşallah yanlış anlamamışımdır.

1. komut duğmesi ABC sutunlarındaki verileri FGH sutünlarına karıştırarak aktarıyor.
2. komut düğmesi J:X sutunaralığına gruplandırma yapıyor.
3. komut düğmesi Z:AF sutunlarına ikişerli sıra oluşturuyor
 

Ekli dosyalar

Halit Bey, benim hazırladığım kodlarda çok büyük veri olmadığı halde neden donma olduğunu söyleyebilir misiniz? Nerede hata yapıyorum? döngüyü 29 öğrenci için yaptığımda bile excel donuyor maalesef.
 
HALİT hocam öncelikle ellerinize sağlık.
1) sınıf sayısını çoğaltmak için "sınıf" çalışma sayfasında O2 hücresini atıyorum 23 yapsam yeterli mi?
2) gerçek datayı "data" çalışma sayfasında a1 hücresinden başlayarak aynı formatta yapıştırsam bozulur mu?
3) kullanmak istediğimde c sütununu karıştır dediğimde sınıflarda öğrencilerin yeri de değişir mi?(her yazılı da değişsin istiyorum onun için)
4) sınıflarda bir sırada tek kişi oturacak yani o sınıfta 23 kişi olacak bunu yapabilir miyim?(yada bazı sınıflarda 17 kişilik yapabilir miyim mesela o sınıfta öğrenci sırasından öğrenci silsem o öğrenci tamamen silinir mi ?)
 
Geri
Üst