[VBA] Drei Spalten kombinieren

simonidossos

Newbie
Registriert
Sep. 2010
Beiträge
3
Hallo,

Ich habe drei Spalten mit Begriffen, zB

Spalte 1: hell, dunkel
Spalte 2: rot, grün, gelb, blau
Spalte 3: rechts, links

Nun möchte ich alle möglichen Permutationen daraus erzeugen, also

hell rot rechts
hell rot links
hell grün rechts
hell grün links
...
dunkel blau rechts
dunkel blau links

Wie mache ich das?

Danke, Simon

P.S.: Und falls jemand mag: Welche VBA Buch ist das beste für Einsteiger?
 
Code:
Dim i%, j%
    For i = 1 To 100
            Sheets(1).Cells(i, 4) = Sheets(1).Cells(i, 1).Value & " " & Sheets(1).Cells(i, 2).Value & " " & Sheets(1).Cells(i, 3).Value
    Next i

WENN:
es nur 3 Spalten sind und max 100 Zeilen. Und WENN das Ergebnis in Spalte 4 stehen soll.


*edit1:
Ahhh... Da hab ich derbe abgefailed. Fail2Read. Sry. Ich lass es stehen. Ich versteh nun aber, was du meinst.
Dazu folgende Fragen:
- Ist die Anzahl der Spalten fix?
- Ist die Anzahl der Zeilen fix?
Dann isses nämlich easy. Aber alles mit xlEnd und so hab ich nicht mehr im Kopf.
 
Zuletzt bearbeitet:
Hi Merle,

Dazu folgende Fragen:
- Ist die Anzahl der Spalten fix?
- Ist die Anzahl der Zeilen fix?

Ja, die Anzahl der Spalten ist fix:

Es gibt 3.

Spalte A hat 100 Einträge
Spalte B hat 4 Einträge
Spalte C hat 4 Einträge

Das Ergebnis sollte erneut in 3 Spalten ausgegeben werden.

Ich stelle das mal schematisch mit Input aus Spalte A - C und Output in Spalte D - F dar.

Code:
/ Spalte A  / Spalte B  / Spalte C  / Spalte D  / Spalte E  / Spalte F  /
/     a     /     x     /     xx    /     a     /     x     /     xx    /
/     b     /     y     /     zz    /     a     /     x     /     zz    /
/     c     /           /           /     a     /     y     /     xx    /
/     d     /           /           /     a     /     y     /     zz    /
/           /           /           /     b     /     x     /     xx    /
...
/           /           /           /     d     /     y     /     zz    /
 
Zuletzt bearbeitet:
Code:
Dim i%, j%, k%, l%
l = 1
    For i = 1 To 100
            For j = 1 To 4
                For k = 1 To 4
                    Sheets(1).Cells(l, 4).Value = Sheets(1).Cells(i, 1).Value
                    Sheets(1).Cells(l, 5).Value = Sheets(1).Cells(j, 2).Value
                    Sheets(1).Cells(l, 6).Value = Sheets(1).Cells(k, 3).Value
                    l = l + 1
                Next k
            Next j
    Next i
 
Danke! Habe es so implementiert

Code:
Sub dankeMerle()
Dim i%, j%, k%, l%
l = 1
    For i = 1 To 4
            For j = 1 To 2
                For k = 1 To 2
                    Sheets(1).Cells(l, 4).Value = Sheets(1).Cells(i, 1).Value
                    Sheets(1).Cells(l, 5).Value = Sheets(1).Cells(j, 2).Value
                    Sheets(1).Cells(l, 6).Value = Sheets(1).Cells(k, 3).Value
                    l = l + 1
                Next k
            Next j
    Next i
End Sub
 

Ähnliche Themen

Zurück
Oben