- Katılım
- 20 Şubat 2019
- Mesajlar
- 83
- Excel Vers. ve Dili
- Excel2016
Arkadaşlar böyle bir kombinasyon listesi nasıl yapabiliriz her birinden rastgele 1 0 veya 2 sayısı alınarak her şekilde alt alt getirmesini istiyorum 4 milyon küsür olasılık çıkmalı

DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
102 yani 1,0,2 nin 4 lü kombinasyonunu mu istiyorsunuz?kombinasyondaki X 0 oraya yazmamışım ve kombinasyonda herhangi bir kriter yok hepsi rastgele her sonuç alınacak sekilde alt alta 15 sıralanmalı 4 milyon küsür kombine çıkmalı ben herhangi bir yoldan yaptım 1 milyon küsür kombine çıktı benim yöntemle 4 milyon çıkmalı ama satır sayısı 1 milyon küsür ve bende pek excel bilmediğim için benim yöntemle 1 milyon küsür kombine yapabiliyorum ancak bir arkadaş makroyla yapabilirsin demişti bir bilginiz var mı?
Aradığınız sonuç şöyle bir sonuç ise numarator olarak yazdığım bir konu bu şekilde düzeneyebilirim102 nin 15 li kombinasyonunu istiyorum rakamlar sabit değil her rakam değişerek alt alta 15 li olarak sıralanacak fotodaki gibi 4 milyon küsür kombinasyon var yapılabilir mi
Yapılabilir, çok çıkması da sizin sorununuz.evet kardeşim tam da bunun gibi ne dersin yapılabilir mi çok kombin çıkıyor ama
siz mi yapacaksınız![]()
Bu önerim her ihtimali hesaplayarak oluşturuyor.sen yukarıda bana attığın örnekte belli bir kurala örüntü olarakmı göre mi yaptın yoksa rastgele mi ben rastgele istiyorum ondan sordum
Evet bende her ihtimali hesaplamasını istiyorum. Rastgele değil 3 ihtimalinde 15 olarak her şekilde kombinlemesiBu önerim her ihtimali hesaplayarak oluşturuyor.
Dim veri() As String
Dim adet As Long
Dim elde, bakilansayi As Boolean
Dim sayilar As String
Const harfler As String = "ABCDEFGĞHIİJKLMNOÖPRSŞTUÜXWVYZ"
'Const sayilar As String = "01"
Const dahildegil As String = ".-/"
'Asri Akdeniz - www.asriakdeniz.com - asriakdeniz@gmail.com
Sub listeyeyukle()
Dim veri As String
Application.ScreenUpdating = False
yol = ActiveWorkbook.Path & "\sonuc.txt"
If Not FileExists(yol) Then
MsgBox ("Sonuc.txt dosyası mevcut değil.")
Exit Sub
End If
Sheets("Liste").Cells.Clear
sonsatir = Cells(9, "A").Value
satir = 0
sutun = 1
Open yol For Input As #1
Do Until EOF(1)
Line Input #1, veri
If satir > sonsatir Then
satir = 0
sutun = sutun + 1
End If
satir = satir + 1
Sheets("Liste").Cells(satir, sutun) = "'" & veri
Loop
Close #1
Sheets("Liste").Select
Cells.EntireColumn.AutoFit
Range("A2").Select
Application.ScreenUpdating = True
End Sub
Sub kombiolustur()
Range("B:B").Clear
numarastr = Cells(2, "A").Value
numarastrorj = numarastr
sayilar = Cells(4, "A").Value
yol = ActiveWorkbook.Path & "\sonuc.txt"
If FileExists(yol) Then Kill (yol)
Open yol For Output As #1
Z = 0
Do
numarastr = numarator(numarastr)
If Len(numarastr) > Len(numarastrorj) Then GoTo son
Print #1, numarastr
'Z = Z + 1
'Cells(Z, 2).Value = "'" & numarastr
Loop Until 2 < 1
son:
Close #1
MsgBox ("İşlem tamamlandı")
End Sub
Function numarator(numara) As String
numara = StrReverse(numara)
adet = Len(numara)
ReDim Preserve veri(1 To adet)
For i = 1 To adet
veri(i) = Mid(numara, i, 1)
Next i
elde = False
For j = LBound(veri) To UBound(veri)
harf = veri(j)
If InStr(dahildegil, harf) > 0 Then GoTo son
bakilansayi = sayimi(harf)
If bakilansayi Then
veri(j) = sayiarttir(harf)
Else
veri(j) = harfarttir(harf)
End If
If elde = False Then
Exit For
End If
son:
Next j
For i = LBound(veri) To UBound(veri)
veristr = veristr & veri(i)
Next i
veristr = StrReverse(veristr)
If Left(veristr, 1) = Left(sayilar, 1) And elde Then
numarator = "1" & veristr
ElseIf Left(veristr, 1) = Left(harfler, 1) And elde Then
numarator = Left(harfler, 1) & veristr
Else
numarator = veristr
End If
End Function
Function harfarttir(harfstr) As String
mevcutsira = InStr(harfler, harfstr)
yenisira = Mid(harfler, mevcutsira + 1, 1)
If yenisira = "" Then
harfarttir = Mid(harfler, 1, 1)
elde = True
Else
harfarttir = yenisira
elde = False
End If
End Function
Function sayiarttir(sayistr) As String
mevcutsira = InStr(sayilar, sayistr)
yenisira = Mid(sayilar, mevcutsira + 1, 1)
If yenisira = "" Then
sayiarttir = Mid(sayilar, 1, 1)
elde = True
Else
sayiarttir = yenisira
elde = False
End If
End Function
Function sayimi(sadecesayistr)
liste = "0123456789"
For k = 1 To Len(sadecesayistr)
harf = Mid(sadecesayistr, k, 1)
If InStr(liste, harf) = 0 Then
sayimi = False
Exit Function
End If
Next k
sayimi = True
End Function
Public Function FileExists(ByVal filePath As String) As Boolean
FileExists = CBool(LenB(Dir(filePath, vbHidden + vbNormal + vbSystem + vbReadOnly + vbArchive)))
End Function
Kodları vba da modul1 e yapıştırın.Altın üyeliğim yok![]()