Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1788to1792
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

Zahlenkombinationen

Zahlenkombinationen
04.11.2020 00:01:47
Tom
Hallo,
da ich in VBA noch nicht weit gekommen bin, und sich das über Formeln nicht lösen läßt,
bitte ich um Hilfe bei folgendem Problem:
Es sollen ALLE möglichen Kombinationen einer Anzahl von Zahlen, die vorher definiert werden,
in einer gewählten Anzahl von Spalten generiert werden.
Z.B. Zahlen: 1 bis 10 in 5 Spalten:
1 2 3 4 5
1 2 3 4 6
1 2 3 4 7
1 2 3 4 8
1 2 3 4 9
1 2 3 4 10
1 3 4 5 6
1 3 4 5 7
.
.
.
6 7 8 9 10
Danke für Eure Hilfe im Voraus.
Grüße Tom

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zahlenkombinationen
04.11.2020 12:39:46
Tom
Hallo Rudi,
das funktioniert für mich so nicht, da jeder Wert einzeln in einer Zelle stehen soll.
(das Formular hat offensichtlich die Tabs zw. den Zahlen entfernt)
Gruß Tom
AW: ALLE? ermittele mal deren Anzahl owT
04.11.2020 10:25:06
neopa
Gruß Werner
.. , - ...
AW: ALLE? ermittele mal deren Anzahl owT
04.11.2020 12:19:08
Tom
Hallo,
da wurde etwas offensichtlich falsch verstanden.
Die Anzahl der Zahlen soll für jeden neuen Vorgang frei wählbar sein.
Aber aus diesen frei wählbaren Zahlen (max. 100) sollen dann ALLE mathematisch möglichen
Kombinationen generiert und ausgegeben werden.
In dem angeführten Beispiel wären das 252 Zeilen mit 5 Spalten.
Grüße Tom
Anzeige
AW: Zahlenkombinationen
08.11.2020 11:28:45
Tom
Leider ist das keine brauchbare Lösung der Aufgabe.
Gibt es bessere Lösungen?
Gruß Tom
AW: Zahlenkombinationen
09.11.2020 00:01:18
Daniel
Hi
wenn die Anazahl der Spalten nicht fest vorgegeben sein soll, dann hilft vielleicht Rekrusion (ein sich selbst aufrufendes Makro)
Beispiel hier:
Gestartet werden muss das Makro StartMakro.
die zu verwendenden Werte legst du am Anfang dieses Makros fest, im String Zahlen mit Bindestrich getrennt und die Anzahl der Spalten durch die dimensionierung des Arrays Kombi.
Option Explicit
Dim strErg
Dim Kombi
Sub StartMarko()
Dim Zahlen As String
Dim arr1, arr2, Werte
Dim z As Long, s As Long
Zahlen = "-1-2-3-4-5-6-7-8-9-10" 'verwendete Zahlen
ReDim Kombi(1 To 5)     'anzahl Spalten
strErg = ""
Call Rekursion(Zahlen, 1)
arr1 = Split(strErg, "|")
ReDim arr2(1 To UBound(arr1), 1 To UBound(Kombi))
For z = 1 To UBound(arr1)
Werte = Split(arr1(z), ";")
For s = 0 To UBound(Werte)
arr2(z, s + 1) = Werte(s)
Next
Next
Cells(1, 1).Resize(UBound(arr2, 1), UBound(arr2, 2)) = arr2
End Sub
Sub Rekursion(ByVal Zahlen As String, ByVal Spalte As Long)
Dim arrZahlen
Dim z As Long
arrZahlen = Split(Zahlen, "-")
For z = 1 To UBound(arrZahlen) - 1
Kombi(Spalte) = arrZahlen(z)
If Spalte = UBound(Kombi) Then
strErg = strErg & "|" & Join(Kombi, ";")
Else
Call Rekursion(Replace(Zahlen, "-" & arrZahlen(z) & "-", "-"), Spalte + 1)
End If
Next
End Sub
Gruß Daniel
Anzeige
AW: Zahlenkombinationen
10.11.2020 12:20:26
Tom
Hallo Daniel,
erst mal danke für deine Mühe.
Ich verstehe die Funktion mancher Teile im Script nicht ganz, sehe aber dass die Problemstellung nicht ganz erfaßt wurde.
Ich lade darum ein Excel-file hoch mit einer genaueren Erklärung der
Aufgabe.
Hallo Daniel,
erst mal danke für deine Mühe.
Ich verstehe die Funktion mancher Teile im Script zwar nicht ganz,
sehe aber dass die Problemstellung nicht vollständig erfaßt wurde.
Ich lade darum ein Excel-file hoch mit einer genaueren Erklärung der
Aufgabe. https://www.herber.de/bbs/user/141450.xlsx
Gruß Tom
Anzeige
AW: Zahlenkombinationen
10.11.2020 12:51:51
Daniel
Das ist jetzt irgendwie ne ganz andere Aufgabe als das, was ursprünglich beschrieben wurde.
Hier müsste es relativ einfach sein, pro Zeile mit Summe(Zählenwenn(A1:E1;{1;2;3})) die Anzahl der Übereinstimmungen zu ermitteln und danach zu filtern.
Gruß Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige