• 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.

Kolommen met tekst vermenigvuldigen/ combineren

Status
Niet open voor verdere reacties.

JAnske04

Gebruiker
Lid geworden
8 feb 2016
Berichten
5
Hallo,

Ik zou een lijst moeten maken in excell, voor deze lijst heb ik 3 gegevens.

gegeven 1 (1 unieke waarde)
gegeven 2-1 t.e.m gegeven 2-11 (11 unieke waarden)
gegeven 3-1 t.e.m gegeven 3-6 (6 unieke waarden)

Als resultaat zou ik dus op 66 combinaties moeten uitkomen.

Kan dit via een formule opgelost worden of ....?
 
IK vrees dat ik deze zal moeten laten aan onze VBA specialisten
 
in jou voorbeeld maak je gebruik van kolom A, B en C waarin B bepaald hoe vaak alles herhaald dient te worden.
Dit is altijd hetzelfde? Kolom B zal altijd het langste zijn?
 
Deze doet dat voor u:

Code:
Sub cobbe()
 rij = 1
 For Each cl In Range("B1:B11")
  For i = 1 To 6
  Cells(rij, 5) = [A1]
   Cells(rij, 6) = cl
    Cells(rij, 7) = Cells(i, 3)
  rij = rij + 1
  Next
 Next
End Sub
 
of
Code:
Sub M_snb()
    sn = Cells(1).CurrentRegion
    ReDim sq(Columns(2).SpecialCells(2).Count * Columns(3).SpecialCells(2).Count - 1, 2)
    
    For j = 0 To UBound(sq)
      sq(j, 0) = sn(1,1)
      sq(j, 1) = sn(j Mod UBound(sn) + 1, 2)
      sq(j, 2) = sn(j \ UBound(sn) + 1, 3)
    Next
    
    Cells(1, 10).Resize(UBound(sq) + 1, UBound(sq, 2) + 1) = sq
End Sub
 
Heren snb en Cobbe, bedankt voor jullie antwoord.

De code van cobbe werkt zoals ik het verwacht. Echter heb ik in mijn file meer dan 400 lijnen staan in kolom 1.
Nu worden enkel de combinaties voor cel1 in kolom 1 berekent.

Zou je, cobbe, me hier ook nog mee willen helpen aub?
Dus voor elk van de 400 lijnen de 66 combinaties.
 
Laatst bewerkt:
Test dan deze eens:

Code:
Sub cobbe()
 rij = 1
For Each ec In Range("A1:A400")
 For Each cl In Range("B1:B11")
  For i = 1 To 6
  Cells(rij, 5) = Cells(ec.Row, "A")
   Cells(rij, 6) = cl
    Cells(rij, 7) = Cells(i, 3)
  rij = rij + 1
  Next
 Next
Next
End Sub
 
Laatst bewerkt:
Dag Cobbe,
Deze code overschrijft telkens, als resultaat krijg ik dan de combinaties van alleen de laatste cel in kolom 1 te zien.
Als resultaat had ik graag de gegevens van de 400 lijnen x 66 gezien, dus een file met 26400 lijnen.
 
De oorzaak had je toch zelf wel kunnen opmerken.
Verschuif die rij=1 één regel naar boven - dus boven FOR each.......
en het resultaat komt al dichter in de buurt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan