pimre Creative Commons License 2019.04.28 0 0 32723

Amit kérsz, azt úgy nevezik, hogy ismétlés nélküli kombináció. Ilyen pl. a lottó, ahol 90 számból húznak ki ötöt. Az így létrehozható elemek száma: n!/(n-k)!*k!, ahol en az összes elemek száma, a k a kiválasztandó elemek száma.

A kiszámításra van képlet az Excelben: Kombinációk(n;k), a létrehozásra nincs. Viszont, ha az alábbi függvényt bemásolod a VBA képernyőn, akkor létrehozza az esetben lehetséges 1365 elemet. Az eredménysorokban az elemeket vesszővel választottam el egymástól az áttekinthetőség kedvéért.

 

Sub kombinacio()

Dim A As Long, B As Long, C As Long, D As Long, sor As Long, utolsosor As Long

utolsosor = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row

ActiveSheet.Range("A1:A" & utolsosor) = "" ' A oszlop adatainak törlése

sor = 1

For A = 1 To 15

    For B = A + 1 To 15

        For C = B + 1 To 15

            For D = C + 1 To 15

                Cells(sor, 1) = A & ", " & B & ", " & C & ", " & D

                sor = sor + 1

            Next

        Next

    Next

Next

End Sub

Előzmény: havimiki (32721)