Live-Forum - Die aktuellen Beiträge
Datum
Titel
18.04.2024 18:04:29
18.04.2024 16:33:24
Anzeige
Archiv - Navigation
968to972
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
968to972
968to972
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Listen kombinieren

Listen kombinieren
16.04.2008 10:52:00
Christian
Hallo zusammen,
ist es möglich zwei Listen mit VBA so zu kombinieren, dass alle möglichen Kombinationen entstehen, wie in folgendem Beispiel?
vorher:
Liste 1:
aaa
bbb
ooo
Liste 2:
hhh
uuu
nnn
Ergebnis in zwei einzelnen Spalten:
aaa hhh
aaa uuu
aaa nnn
bbb hhh
bbb uuu
bbb nnn
ooo hhh
ooo uuu
ooo nnn
Besten Dank für Eure Hilfe!
Viele Grüße
Christian

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

Betreff
Datum
Anwender
Anzeige
AW: Listen kombinieren
16.04.2008 11:07:59
Jonatan
Hallo,
so könnte es aussehen

Sub möglichkeiten()
Dim i As Integer
Dim b As Integer
Dim y As Integer
For i = 1 To 3
For b = 1 To 3
Cells(5 + y, 1) = Cells(i, 1)
Cells(5 + y, 2) = Cells(b, 2)
y = y + 1
Next b
Next i
End Sub


Gruß Jonatan

AW: Listen kombinieren
16.04.2008 11:18:00
Christian
Hallo Jonathan,
klasse! Das funktioniert echt sehr gut. Einen Wunsch aus der Sparte "schöner wohnen" hätte ich dann noch. Geht es irgendwie, dass ich die Bereiche als Ranges festlegen kann?
Liste1 = Range("A1:A10")
Liste2 = Range("B1:B10")
Ergebnis = Range("C1") 'bei C1 beginnend
Danke für Deine Mühen!
Viele Grüße
Christian

Anzeige
AW: Listen kombinieren
16.04.2008 11:25:00
Jonatan
Hallo Christian,
ich denke, sö könnte es auch funktionieren.
Gruß Jonatan

Sub möglichkeiten()
Dim i As Integer
Dim b As Integer
Dim y As Integer
Dim bereich1 As Integer
Dim bereich2 As Integer
bereich1 = InputBox("Bitte eben Sie den Wert der letzten Zeile in Spalte A ein", "Eingabe", "10" _
)
bereich2 = InputBox("Bitte eben Sie den Wert der letzten Zeile in Spalte B ein", "Eingabe", "10" _
)
y = 1
For i = 1 To bereich1
For b = 1 To bereich2
Cells(y, 3) = Cells(i, 1)
Cells(y, 4) = Cells(b, 2)
y = y + 1
Next b
Next i
End Sub


Anzeige
AW: Listen kombinieren
16.04.2008 11:34:00
Christian
Hallo Jonathan,
gute Idee. Ich denke darauf kann ich aufbauen.
Besten Dank und viele Grüße
Christian

AW: Listen kombinieren
16.04.2008 11:18:04
UweD
Hallo
so.?

Sub Kombinationen()
    Dim A(), B()
    Dim SP1%, SP2%, ZE&, LR1&, LR2&, TB1, i&, j&, z&
    Set TB1 = ActiveWorkbook.Sheets("Tabelle1"'aus bestimmtem Blatt
    On Error GoTo Fehler
    SP1 = 1 'Spalte A
    SP2 = 2 'Spalte B
    ZE = 1 'ab Zeile 1
    LR1 = TB1.Cells(Rows.Count, SP1).End(xlUp).Row 'letzte Zeile der Spalte
    LR2 = TB1.Cells(Rows.Count, SP2).End(xlUp).Row 'letzte Zeile der Spalte
    Application.ScreenUpdating = False
    z = 0
    For i = ZE To LR1
        For j = ZE To LR2
            TB1.Cells(ZE + z, SP2 + 2) = TB1.Cells(ZE + i - 1, SP1)
            TB1.Cells(ZE + z, SP2 + 3) = TB1.Cells(ZE + j - 1, SP2)
            z = z + 1
        Next j
    Next i
Fehler:
    If Err.Number <> 0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear
    Application.EnableEvents = True
    Application.DisplayAlerts = True
End Sub
Gruß UD

Anzeige
AW: Listen kombinieren
16.04.2008 11:19:00
UweD
Hi
Dim A(), B() kann natürlich noch weg.
UD

AW: Listen kombinieren
16.04.2008 11:37:27
Christian
Hallo Uwe,
Deine Version funktioniert auch sehr gut. Ich werde mir meine Lösung aus Euren beiden Ansätzen zusammenbasteln und meinen Bedürfnissen anpassen.
Besten Dank und viele Grüße
Christian

AW: Listen kombinieren
17.04.2008 07:50:18
UweD
Hallo
ich hab noch eine Formellösung gebastelt:
 
 ABCDE
1aaaxxx aaaxxx
2bbbyyy aaayyy
3ccczzz aaazzz
4ddd  bbbxxx
5eee  bbbyyy
6fff  bbbzzz
7   cccxxx
8   cccyyy
9   ccczzz
10   dddxxx
11   dddyyy
12   dddzzz
13   eeexxx
14   eeeyyy
15   eeezzz
16   fffxxx
17   fffyyy
18   fffzzz
Formeln der Tabelle
D1 : =WENN(INDIREKT("A"&(AUFRUNDEN(ZEILE()/ANZAHL2(B:B); 0)))=0;"";INDIREKT("A"&(AUFRUNDEN(ZEILE()/ANZAHL2(B:B); 0))))
E1 : =WENN(D1="";"";INDIREKT("B"&REST(ZEILE()-1;ANZAHL2(B:B))+1))
 

Beide Formleln soweit runterkopieren, bis keine Werte mehr kommen.
Gruß UD
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige