- Katılım
- 28 Eylül 2007
- Mesajlar
- 4,023
- Excel Vers. ve Dili
- 2013 Türkçe
sayıları rastgele dağıtmak
Ekli dosyalar
-
17.5 KB Görüntüleme: 23
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Sub Dagit()
Dim i, RasgeleSayı, NeKadar As Long
Dim Sayı As Integer
NeKadar = Application.WorksheetFunction.Sum(Range("B2:B" & [B65536].End(3).Row)) + 100
Application.ScreenUpdating = False
Columns("D:D").ClearContents
[D1] = "Sayılar"
For i = 2 To [A65536].End(3).Row
Sayı = 0
Do
RastgeleSayı = Int((NeKadar * Rnd) + 1)
If Cells(RastgeleSayı, "D") = "" Then
Sayı = Sayı + 1
Cells(RastgeleSayı, "D") = Cells(i, "A")
End If
Loop Until Sayı = Cells(i, "B")
Next i
Columns("D:D").SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
Application.ScreenUpdating = True
MsgBox "Dağıtma İşlemi Bitmiştir....", vbOKOnly, "[URL="http://www.excel.web.tr/"]www.excel.web.tr[/URL]"
End Sub
Sub Sayilari_Rastgel_Dagit()
Dim i As Integer
Dim j As Integer
Dim x As Integer
Dim iSec As Integer
Dim col As New Collection
[COLOR=darkgreen] 'bir collection nesnesine tüm veriler belirtilen miktar toplanıyor[/COLOR]
On Error Resume Next
For i = 1 To Cells(65536, 1).End(xlUp).Row
If IsNumeric(Cells(i, 2)) Then
If Cells(i, 2) > 0 Then
For j = 1 To Cells(i, 2)
x = x + 1
col.Add Cells(i, 1), CStr(x)
Next j
End If
End If
Next i
On Error GoTo 0
Application.Calculation = xlCalculationManual
[COLOR=darkgreen] 'Collection nesnesinden rastgele veri çekilip sayfaya yazdırılıyor[/COLOR]
For i = 1 To col.Count
Randomize
fpc:
iSec = CInt(Rnd() * col.Count)
If iSec = 0 Then GoTo fpc
Cells(i, 4) = col(iSec)
col.Remove iSec
Next i
Application.Calculation = xlCalculationAutomatic
End Sub