Soru Tablo Doldurma

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,371
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,
Aşağıdaki kodları chatcpt yazmıştır. Deneyiniz.
Kod:
Sub BenzersizRastgeleSayilar()

    Dim ws As Worksheet
    Dim usedNumbers As Object
    Dim i As Long, j As Long
    Dim randomNumber As Long

    Set ws = ThisWorkbook.Sheets("Sayfa1")  ' Sayfanın adını burada belirtin
    Set usedNumbers = CreateObject("Scripting.Dictionary")

    ' Rastgele sayı atama döngüsü
    For i = 1 To 10 ' Satır
        For j = 2 To 11 ' Sütun
            Do
                randomNumber = WorksheetFunction.RandBetween(1, 100) ' İstenilen aralığı burada belirtebilirsiniz
            Loop While usedNumbers.Exists(randomNumber) ' Benzersiz sayıları kontrol et

            ws.Cells(i, j).Value = randomNumber
            usedNumbers.Add randomNumber, 0
        Next j
    Next i
    
End Sub
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,371
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,
Yine ChatCpt'nin çözümü, biraz basite kaçmış sanırım :)
Kod:
Sub SudokuBenzeri()
    Dim ws As Worksheet
    Dim i As Long, j As Long, k As Long
    Dim num As Long
    Dim numbers(1 To 10) As Long

    Set ws = ThisWorkbook.Sheets("Sayfa1")  ' Sayfanın adını burada belirtin

    ' Numbers dizisini başlangıç değerleriyle doldurun
    For i = 1 To 10
        numbers(i) = i
    Next i

    ' Numbers dizisini karıştırın
    For i = 1 To 10
        j = Int(Rnd() * 10) + 1
        k = numbers(i)
        numbers(i) = numbers(j)
        numbers(j) = k
    Next i

    ' Hücrelere değerleri yerleştirin
    k = 1
    For i = 2 To 8
        For j = 2 To 11
            ws.Cells(i, j).Value = numbers(k)
            k = k + 1
            If k > 9 Then k = 1
        Next j
    Next i
End Sub
 
Katılım
22 Eylül 2006
Mesajlar
883
Excel Vers. ve Dili
Office Excel®2007®TR
Teşekkürler
 
Üst