• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

EXCEL combinaties

Status
Niet open voor verdere reacties.

Boverduyn

Gebruiker
Lid geworden
4 mrt 2016
Berichten
61
Beste allemaal,

Ik heb een lastige vraag en ik zou het knap vinden als iemand hieruit komt.
Ik heb een voorbeeld bestand toegevoegd om mijn uitleg wat beter te begrijpen.
Alle mogelijke combinaties wil ik in een tabel hebben. Linksboven staan de verschillende mogelijkheden waaruit je kan kiezen.
Je moet het zien als een boom diagram, eerst heb je keuze uit 7 verschillende soorten, daarna 3 verschillende formaten, 3 manieren en 3 aantal slagen.
Uiteindelijk zijn er dus volgens mijn berekening 7*3*3*3 = 189 verschillende mogelijkheden. Aangezien het uittypen erg veel werk is (ivm wellicht nog extra voorwaarden) vraag ik jullie of iemand weet hoe ik dit gemakkelijk in een tabel kan zetten.

Ik kijk uit naar de antwoorden en alvast bedankt!

Bekijk bijlage vraag excel.xlsx
 
Probeer deze eens:
Code:
Sub cobbe()
p = 10
For s1 = 1 To 7
 For s2 = 1 To 3
  For s3 = 1 To 3
   For s4 = 1 To 3
   Cells(p, 1) = Cells(s1, 1) & " --- " & Cells(s2, 2) & " --- " & Cells(s3, 3) & " --- " & Cells(s4, 4)
   p = p + 1
   Next
  Next
 Next
Next
End Sub
 
Beste cobbe,

Bedankt voor uw antwoordt
Helaas weet ik niks van visual basic.
Kunt u mij misschien wat meer uitleg geven over waar ik deze code moet invullen en hoe het werkt of is dat te lastig.

Bedankt!
 
Ik zal het in je bestand inbouwen. met de nodige uitleg.
 
En zo wordt hij mooi verdeeld over 4 kolommen.
Code:
Sub cobbe()
p = 10
For s1 = 1 To 7
 For s2 = 1 To 3
  For s3 = 1 To 3
   For s4 = 1 To 3
   Cells(p, 1) = Cells(s1, 1) & "-" & Cells(s2, 2) & "-" & Cells(s3, 3) & "-" & Cells(s4, 4)
   p = p + 1
   Next
  Next
 Next
Next
Cells(10, 1).CurrentRegion.TextToColumns , , , , 0, 0, 0, 0, -1, "-"
End Sub
 
idd maar nu schrijf je 189x4 =756 keer(zelfs 945 met die extra kolom)naar je werkblad. Met je vorige code maar 189 keer.
Wat als de combinatiemogelijkheden nog groter worden.
Nog mooier zou zijn als je de array opbouwt in het geheugen en dan in 1 schrijfbeweging op je werkblad zet.
 
24 seconden voor 4 x 20 = 160000 combinaties, valt nogal mee vind ik. :)
 
Code:
Sub tsh()
    br = [choose({1,2,3,4},mod((row(1:189)-1)/(7*3*3),7)+1,mod((row(1:189)-1)/(7*3),3)+1,mod((row(1:189)-1)/7,3)+1,mod(row(1:189)-1,3)+1)]
    Range("A10").Resize(189, 4) = Application.Index(Cells(1).CurrentRegion, br, Array(1, 2, 3, 4))
End Sub
 
Hulde allen, :thumb:

dan kan het ook met 1 regel:

Code:
Sub M_snb()
  Cells(10, 1).Resize(189, 4) = Application.Index(Cells(1).CurrentRegion, [choose({1,2,3,4},(row(1:189)-1)/63+1,mod((row(1:189)-1)/21,3)+1,mod((row(1:189)-1)/7,3)+1,mod(row(1:189)-1,3)+1)], Array(1, 2, 3, 4))
End Sub
 
@ Timshel & snb

Maar wat doen jullie dan met volgende, aangezien de matrix nu hard gecodeerd is ???

(ivm wellicht nog extra voorwaarden)
:eek:
 
Wachten tot die extra voorwaarden bekend zijn en dan de code - die zeer systematisch is- aanpassen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan