Kura çekimi

Katılım
11 Ocak 2008
Mesajlar
377
Excel Vers. ve Dili
mikrosoft exel türkçe
Değerli üstadlarım işyerinde her yıl personellerin izinlerini kura ile belirliyoruz
ekli dosyamda yaptığım kura çekme putonuna her tıklamada bir ay ismi çıkıyor
yalnız sorunum şu işçiye tıkla deyince izin tarihini belirlebutonunu tıkla deyince bazan iki kez üst üste tıklıyorlar
böyle olunca de ikinci kez yapılan tıklamada başka bir kura çekmiş oluyor
ikinci kez tıklamasını nasıl önleyebiliriz
yada üst üste yapılan ikinci tıklamada bizi nasıl uyarabilir
saygılarımla
 

Ekli dosyalar

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,472
Excel Vers. ve Dili
Office 2010 & 2013 tr
Merhaba,
Örneği deneyiniz. Her açılışta bir kura çakim hakkı var. Tekrar kura çekebilmek için userformu kapatıp açmalısınız.
 

Ekli dosyalar

Katılım
11 Ocak 2008
Mesajlar
377
Excel Vers. ve Dili
mikrosoft exel türkçe
Üstadım harikasınız allah razı olsun
çok teşekkürler
 
Katılım
10 Mayıs 2009
Mesajlar
1,080
Excel Vers. ve Dili
2003 türkçe
Kura demişken yeni yıl kurası için bir çalışma yapılabilir mi diye düşündüm.B sütununda 20 isim var C sütununa bu isimler B sütunundaki isimlerin karşısına dağılacak (birbirine hediye alacak personeli belirlemek için) ama dikkat edilmesi gereken iki husus var:bir kişiye kendi ismi çıkmayacak ve aynı isim birden fazla kişiye çıkmayacak..
 

Ekli dosyalar

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,472
Excel Vers. ve Dili
Office 2010 & 2013 tr
Syn. peleryn,
Ekteki dosyayı inceleyin:
Kod:
Private Sub CommandButton1_Click()
Tekrar:
Dim q As Variant, r As Variant
Dim random As Range
Dim x As Long, y As Long
Range("C1:C" & [C65536].End(3).Row).ClearContents
Range("B1:B" & [b65536].End(3).Row).Copy
[C1].PasteSpecial Paste:=xlValues: Application.CutCopyMode = False
Set random = Range("C1:C" & [C65536].End(3).Row)
q = random.Value
Randomize
For x = 1 To UBound(q, 1)
    y = Int(Rnd() * UBound(q) + 1)
    r = q(x, 1)
    q(x, 1) = q(y, 1)
    q(y, 1) = r
Next x
random.Value = q
For z = 1 To [b65536].End(3).Row
If Cells(z, "b") = Cells(z, "c") Then GoTo Tekrar
Next
End Sub
 

Ekli dosyalar

Katılım
10 Mayıs 2009
Mesajlar
1,080
Excel Vers. ve Dili
2003 türkçe
Hocam ellerinize sağlık çok güzel çalışıyor.İlgilendiğiniz için çok teşekkür ederim.
 
Katılım
4 Kasım 2009
Mesajlar
3
Excel Vers. ve Dili
Excel 2002
Slm benim 30 kişilik bir sınıfm var öğrenci listemi yeniden yeniden girmek zorunad kalmadan excelde bir kere listemi girdiğimde butona bastığımda 30 kişiden 1 kişiyi seçecek şekide bir kura programı hazırlanması mümkünmü gerçi üstteki örnek işimi görebilir en üstekini seçilmiş varsayabilir ama o örenği 3o kişiye çıkarmak mümkünmü. bana eşleştirme değil 30kişiden birisini seçmesi butona her bastığımda başka birini seçecek şekilde düzenlemek mükün mü şimdiden teşekkürler.
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,472
Excel Vers. ve Dili
Office 2010 & 2013 tr
Merhaba,
Aşağıdaki örneği deneyiniz. Öğrenci sayısını isteğinize göre çoğaltabilirsiniz.
Kod:
Sub Secim_Yap()
q = [a65536].End(3).Row
If WorksheetFunction.CountA(Range("b1:b" & q)) >= q Then
Sor = MsgBox("Tüm öğrencilerin kura çekimi tamamlandı. Seçim sıfırlansın mı?", vbYesNo)
If Sor = vbYes Then Range("b1:b" & q).ClearContents: [c1] = "": Exit Sub
If Sor = vbNo Then Exit Sub
End If
Tekrar:
sayi = Int((q * Rnd) + 1)
If Cells(sayi, "b") = "*" Then GoTo Tekrar
[c1] = Cells(sayi, "a")
Cells(sayi, "b") = "*"
End Sub
 

Ekli dosyalar

Katılım
11 Ocak 2010
Mesajlar
1
Excel Vers. ve Dili
office türkçe
arkadaşlar saygılar ben senelik izin eşleştirmesinin aynı anda yapılmasını istiyorum yani iki ayrı veri girilecek ve listenin tamamını eşleştirecek bu mümkün mü?
 
Katılım
17 Ocak 2010
Mesajlar
54
Excel Vers. ve Dili
2016 & İngilizce
Syn. peleryn,
Ekteki dosyayı inceleyin:
Kod:
Private Sub CommandButton1_Click()
Tekrar:
Dim q As Variant, r As Variant
Dim random As Range
Dim x As Long, y As Long
Range("C1:C" & [C65536].End(3).Row).ClearContents
Range("B1:B" & [b65536].End(3).Row).Copy
[C1].PasteSpecial Paste:=xlValues: Application.CutCopyMode = False
Set random = Range("C1:C" & [C65536].End(3).Row)
q = random.Value
Randomize
For x = 1 To UBound(q, 1)
    y = Int(Rnd() * UBound(q) + 1)
    r = q(x, 1)
    q(x, 1) = q(y, 1)
    q(y, 1) = r
Next x
random.Value = q
For z = 1 To [b65536].End(3).Row
If Cells(z, "b") = Cells(z, "c") Then GoTo Tekrar
Next
End Sub
Çok teşekkürler. Ama bir sorum var. Butonu değiştirme olanağımız yok mu? Butonda değişiklik yapamıyorum?
 
Üst