Thema Datum  Von Nutzer Rating
Antwort
31.08.2018 06:39:10 Hartfuss
NotSolved
31.08.2018 17:08:42 Gast52839
NotSolved
31.08.2018 18:03:15 Hartfuss
NotSolved
31.08.2018 20:36:27 Gast23008
NotSolved
31.08.2018 23:18:23 Hartfuss
NotSolved
01.09.2018 12:38:06 Gast72577
NotSolved
01.09.2018 12:50:10 Hartfuss
NotSolved
01.09.2018 21:55:51 Gast68732
NotSolved
02.09.2018 10:15:02 Hartfuss
NotSolved
Blau VBA Code für bestimmte Zahlenkombinationen
02.09.2018 13:44:43 xlKing
NotSolved
02.09.2018 13:58:11 xlKing
NotSolved
03.09.2018 07:24:20 Hartfuss
NotSolved
02.09.2018 16:22:11 Gast15440
NotSolved
02.09.2018 18:56:12 xlKing
NotSolved
02.09.2018 21:51:00 Gast87817
NotSolved

Ansicht des Beitrags:
Von:
xlKing
Datum:
02.09.2018 13:44:43
Views:
538
Rating: Antwort:
  Ja
Thema:
VBA Code für bestimmte Zahlenkombinationen

Hi,

Sorry, dass ich mich hier mit reinhäng, aber ich vermute, der Kollege ist auf dem Holzweg. Nix für ungut Gast. :-)

Spielt denn die Sortierung oder Verwendung doppelter Einträge, wie Gast sie beschreibt, überhaupt eine Rolle? Du sprichst in deiner Ausgangsfrage doch nur von Kombinationen und nicht von Variationen. Für 4 aus 20 gibt es exakt 4845 Möglichkeiten, welche dein Code (mit +1 statt +2 pro Schleife) bereits auflistet. Etwas weniger sind es, sobald du deine Regeln mit einer simplen Bedingung eingebaut hast. If b > a + 1 And (c > b + 1 Or d > c + 1) Or c > b + 1 And d > c + 1 Then usw.

Als Code sieht das dann so aus: 

Sub Kombinationen()
Dim a%, b%, c%, d%, x&, y&
 x = 1
 For a = 1 To 20
    For b = a + 1 To 20
        For c = b + 1 To 20
            For d = c + 1 To 20
              If y = 65536 Then
                y = 0
                x = x + 1
              End If
              
              If b > a + 1 And (c > b + 1 Or d > c + 1) Or c > b + 1 And d > c + 1 Then
                y = y + 1
                Cells(y, x) = a & "," & b & "," & c & "," & d & ","
              End If
            Next d
        Next c
    Next b
Next a
End Sub

Für den zweiten Schritt brauchst du dann noch eine zweite Zeilen-Variable (z.B. z), die du gleich mit einbauen kannst. Angenommen in der Variable Suchzahl steht die 19 dann kannst du den Code wie folgt erweitern:

Sub Kombinationen()

Dim a%, b%, c%, d%, x&, y&, z&, Suchzahl%

Suchzahl = 19

 x = 1
 For a = 1 To 20
    For b = a + 1 To 20
        For c = b + 1 To 20
            For d = c + 1 To 20
              If y = 65536 Then
                y = 0
                x = x + 1
              End If
              
              If b > a + 1 And (c > b + 1 Or d > c + 1) Or c > b + 1 And d > c + 1 Then
                y = y + 1
                Cells(y, x) = a & "," & b & "," & c & "," & d
              End If
              
              If a = Suchzahl Or b = Suchzahl Or c = Suchzahl Or d = Suchzahl Then
                z = z + 1
                Cells(z, x + 3) = a & "," & b & "," & c & "," & d
              End If
            Next d
        Next c
    Next b
Next a
End Sub

Das sind dann nur noch 969 Treffer.

Gruß Mr. K.


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
31.08.2018 06:39:10 Hartfuss
NotSolved
31.08.2018 17:08:42 Gast52839
NotSolved
31.08.2018 18:03:15 Hartfuss
NotSolved
31.08.2018 20:36:27 Gast23008
NotSolved
31.08.2018 23:18:23 Hartfuss
NotSolved
01.09.2018 12:38:06 Gast72577
NotSolved
01.09.2018 12:50:10 Hartfuss
NotSolved
01.09.2018 21:55:51 Gast68732
NotSolved
02.09.2018 10:15:02 Hartfuss
NotSolved
Blau VBA Code für bestimmte Zahlenkombinationen
02.09.2018 13:44:43 xlKing
NotSolved
02.09.2018 13:58:11 xlKing
NotSolved
03.09.2018 07:24:20 Hartfuss
NotSolved
02.09.2018 16:22:11 Gast15440
NotSolved
02.09.2018 18:56:12 xlKing
NotSolved
02.09.2018 21:51:00 Gast87817
NotSolved