Çok eski bir web tarayıcısı kullanıyorsunuz. Bu veya diğer siteleri görüntülemekte sorunlar yaşayabilirsiniz.. Tarayıcınızı güncellemeli veya alternatif bir tarayıcı kullanmalısınız.
sayı üreten makroları birbirine bağladım.ama b9 il c2 hücresinde aynı anda sayı üretiyor.b2,b3,b4.. b8 tek tek bastığımda üretiyor. ancak b9 il c1 c9 ile d1 d9 ile e1 hücresinde aynı andda üretiyor.bunu nasıl ayırabiliriz
Aşağıdaki şekilde bir dener misiniz. (Tek modüle yazın)
Sub sayiuretim1()
Randomize
If [B9] <> "" Then GoTo 10
While i <= [A2].Value - 1
sayi = Int([A1].Value * Rnd + 1)
If WorksheetFunction.CountIf([b2:b9], sayi) = 0 Then
i = Cells([A2] + 1, 2).End(3).Row + 1
Cells(i, 2) = sayi
Exit Sub
End If
Wend
10
If [C9] <> "" Then GoTo 20
While i <= [A2].Value - 1
sayi = Int([A1].Value * Rnd + 1)
If WorksheetFunction.CountIf([c2:c9], sayi) = 0 Then
i = Cells([A2] + 1, 3).End(3).Row + 1
Cells(i, 3) = sayi
Exit Sub
End If
Wend
20
If [D9] <> "" Then GoTo 30
While i <= [A2].Value - 1
sayi = Int([A1].Value * Rnd + 1)
If WorksheetFunction.CountIf([d2:d9], sayi) = 0 Then
i = Cells([A2] + 1, 4).End(3).Row + 1
Cells(i, 4) = sayi
Exit Sub
End If
Wend
30
If [E9] <> "" Then GoTo 40
While i <= [A2].Value - 1
sayi = Int([A1].Value * Rnd + 1)
If WorksheetFunction.CountIf([e2:e9], sayi) = 0 Then
i = Cells([A2] + 1, 5).End(3).Row + 1
Cells(i, 5) = sayi
Exit Sub
End If
Wend
40
End Sub
Şaban Hocam çok teşekkür ederim.Bir de bir şey daha sorabilirmiyim.peki bu yazdığımız koda Sub GRUPPP()
10 deg = Int(Rnd * [U65536].End(3).Row) + 1
If [V65536].End(3).Row - 1 = [U65536].End(3).Row Then
MsgBox "Tüm isimler çekilmiştir."
Exit Sub
End If
If WorksheetFunction.CountIf([V:V], Cells(deg, "U")) = 0 Then
[V65536].End(3).Offset(1, 0) = Cells(deg, "U")
[w1] = Cells(deg, "U")
[V1:V65536].Sort Key1:=[V1], Order1:=xlAscending
Else
GoTo 10
End If
y = Cells(1, 25).Value
x = Cells(1, 24).Value
txt = Cells(1, 20)
Cells(y + 14, x + 6) = txt
End Sub
bu kodu ekleyeceğim.yapmak istediğim önce sayı üretecek.sonra grupp kodunu çalıştıracak.Aslında ben yaptım ama bende sayıları üretmek için 4 düğme grup içinde 1 düğme vardı.tek düğmeye indirgeyebilirmiyiz.
Sub sayiuretim1()
Randomize
If [B9] <> "" Then GoTo 10
While i <= [A2].Value - 1
sayi = Int([A1].Value * Rnd + 1)
If WorksheetFunction.CountIf([b2:b9], sayi) = 0 Then
i = Cells([A2] + 1, 2).End(3).Row + 1
Cells(i, 2) = sayi GRUPPP
Exit Sub
End If
Wend
10
If [C9] <> "" Then GoTo 20
While i <= [A2].Value - 1
sayi = Int([A1].Value * Rnd + 1)
If WorksheetFunction.CountIf([c2:c9], sayi) = 0 Then
i = Cells([A2] + 1, 3).End(3).Row + 1
Cells(i, 3) = sayi GRUPPP
Exit Sub
End If
Wend
20
If [D9] <> "" Then GoTo 30
While i <= [A2].Value - 1
sayi = Int([A1].Value * Rnd + 1)
If WorksheetFunction.CountIf([d2:d9], sayi) = 0 Then
i = Cells([A2] + 1, 4).End(3).Row + 1
Cells(i, 4) = sayi GRUPPP
Exit Sub
End If
Wend
30
If [E9] <> "" Then GoTo 40
While i <= [A2].Value - 1
sayi = Int([A1].Value * Rnd + 1)
If WorksheetFunction.CountIf([e2:e9], sayi) = 0 Then
i = Cells([A2] + 1, 5).End(3).Row + 1
Cells(i, 5) = sayi GRUPPP
Exit Sub
End If
Hocam aslında makro o kadar zor görünmüyor.Ama bir türlü mantığını kavrayamadım.M.Temel Korkmaz'ın programlama diye bir kitabı var onu almayı düşünüyorum.Umarım ben de bir gün bu makroyu a dan z ye öğrenirim
bi ara şampiyonlar ligi çekilişin izlemiştim.bu kurayı acaba excelde yapabilirmiyim diye düşündüm.sn leumruk hocam baya yardım etti.sonra aklıma farklı çözüm yolları geldi.bunu yaptım.ama yinede hataya engel olamıyorum.ama bir gün hatasız yapacam ve uefaya gönderecem.
Evet hocam aklıma bir şey geliyor bir yerde deniyorum.olmuyor başka yerde deniyorum. abartısız bugün 5-6 saat sırf bu dosyayla ilgilendim.aslında bu dosya hiçbir işime yaramayacak.hem bir yandan birşeyler öğreniyorum hem de bu dosyayı başarmak istiyorum
Hocam aslında 2 kriter var.
1-Aynı ülke takımları aynı gruba gelemez.
2-4 takımlı ülkelerin 2 si a-d,2si e-h 3 takımlı ülkelerin 2 ye 1 yada 1e 2 gelecek şekilde,2 takımlı ülkelerin 1i a-d 1i e-h gruplarına gelecek.işte bu iki kreteri bir türlü sağlayamadım.dosyada cs sütununda ülekelerin kaç takımla katıldığı yazıyor.çok uğraştığım için her tarafta formül var.
yada şöyle örnek vereyim.fenerbahçe,beşiktaş olimpikos 3 takım kaldı.a d ve g gruplarına gidecekler.takım seçtim.olimpiakos geldi.olimpiakos g grubuna gidemez.eğer g grubuna giderse a ve d gruplarında 2 türk takımı olmuş olur
Şu futbolu hayatta anlayamayacağım
Sizin bu anlattıklarınızdan malesef birşey anlamıyorum, anlayamıyorum (Hele ki bu saatte)
Şu kadar belirteyim. U sütunundaki değerleri bir formülle bulmuşsunuz. Ben o formülleri silerek, yerine direkt harfleri yazdım. Ve aşağıdaki dosyayı o şekilde çalıştırdım.
Siz butonun doğru çalışıp çalışmadığını kontrol edin.
Hocam sadece 1. torbadaki takımları dağıtıyor.diğerlerini dağıtmıyor.hocam U sütunundaki harfler takımın gidebileceği grubu gösteriyor.örneğin a grubunda ispanyol takımı varsa ispanyol takımı seçtiğimizde a harfi gözükmüyor.makronun 3 4 işlem sonrasını görebilmesi gerekiyor.ben saat 11den beri bu dosyayla uğraştım.kafam dondu artık.eğer vakit bulup uğraşabilirseniz 2 kritere dikaat etmeniz gerekiyor.
1- aynı ülke takımları aynı grupta olmayacak
2- 3 ve 4 takımlı ülkelerin takımları a-d ve e-h gruplarında toplam 2 yi gemeyecek.2 takımlı ülkelerin ise biri a-d grupları arasında biri e-h gruplarında olacak.3 takımlı ülkelerin 2si a-d veya e-h gruplarında olabilir
Malesef şu saatte daha fazlasını kaldırabileceğimi sanmıyorum. Dosyanızın (bana göre) aşırı dağınık olması ve çoğu yerde değerlerin formülle bulunmuş olmasından dolayı takip etmek güç geldi doğrusu.
Bu şekilde uğraşmaktansa en baştan sıfırdan yeni bir şeyler yapmaya çalışmak daha kolay görünüyor gözüme.
Bu haliyle daha fazla yardımcı olabileceğimden pek emin değilim.
Olsun hocam teşekkür ederim sizlere geçen sizin yazdığınız makroları incedim.Biraz birşeyler öğrendim sayenizde.Zaten vakitte baya geç oldu.Size hayırlı sabahlar
Sizlere daha iyi bir deneyim sunabilmek icin sitemizde çerez konumlandırmaktayız, web sitemizi kullanmaya devam ettiğinizde çerezler ile toplanan kişisel verileriniz Veri Politikamız / Bilgilendirmelerimizde belirtilen amaçlar ve yöntemlerle mevzuatına uygun olarak kullanılacaktır.