Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1272to1276
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro für Permutation

Makro für Permutation
Alifa
Hallo,
eine 8-stellige Zahl, besteht aus genau den Ziffern 1,2,3,4 und 4 Nullen. Die Bedingung ist, die vier Ziffern 1,2,3,4 sollen stets zusammen bleiben. Wie kann man mittels Makro alle 120 möglichen Permutationen ermitteln? Beispiel:00001234 ist WAHR; 13420000 ist WAHR; 03412000 ist WAHR. Vielen Dank im Voraus!
Alifa

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Makro für Permutation
06.08.2012 19:56:07
ransi
HAllo
So dahingeschrieben...
Versuch mal:
Option Explicit


Dim Out As Variant
Dim lngCount As Long

Public Sub prcMachs()
    Dim sText As String
    Dim nullText As String
    Redim alle(0)
    Dim I As Integer, K As Integer
    lngCount = 0
    sText = "1234"
    Dim Z
    Redim arr(Len(sText) - 1)
    For I = 1 To Len(sText)
        arr(I - 1) = Mid(sText, I, 1)
    Next
    Redim Out(WorksheetFunction.Fact(Len(sText)) - 1, 1 To 1)
    Call fncPermut(arr, 0, Len(sText) - 1)
    For I = LBound(Out) To UBound(Out)
        For K = 1 To 5
            Redim Preserve alle(Z)
            alle(Z) = Format(machs(Out(I, 1), K), "00000000")
            Z = Z + 1
        Next
    Next
    Range("A1").Resize(Z, 1) = WorksheetFunction.Transpose(alle)
End Sub


Public Function fncPermut(ByVal arr, intCounter As Integer, intI As Integer)
    Dim I As Integer
    Dim vntTmp As Variant
    If intCounter = intI Then
        Out(lngCount, 1) = Join(arr, "")
        lngCount = lngCount + 1
    Else
        For I = intCounter To intI
            vntTmp = arr(I)
            arr(I) = arr(intCounter)
            arr(intCounter) = vntTmp
            Call fncPermut(arr, intCounter + 1, intI)
        Next
    End If
End Function


Function machs(wert, zahl) As String
    Dim txt As String
    txt = "00000000"
    Mid(txt, zahl, 4) = wert
    machs = txt
End Function



ransi
Anzeige
AW: Makro für Permutation
07.08.2012 05:40:34
Alifa
Hallo ransi,
das passt. Vielen Dank!
Grüße, Alifa

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige