Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in Friedrichroda /
Thüringen / Region Großer Inselsberg statt. Hotelbuchung ab sofort möglich.

Bei Problemen mit der Erreichbarkeit der Foren bitte den Link / Favoriten prüfen und ersetzen. Dazu über die Startseite ins gewünschte Forum wechseln und zu den Favoriten hinzufügen. Excel ist derzeit z.B. unter http://www.clever-excel-forum.de/forum-2.html zu erreichen.


Wiederholen von Zellinhalten
#1
Hallo zusammen,

ich hoffe ihr könnt mir wieder einmal bei einem Problem weiterhelfen.
Ich habe beiliegend die Datei angehängt - ich denke dann ist klarer was ich brauche...

In einer Tabelle stehen in Spalte G verschiedene Kleidungsstücke.
Daneben stehen dann verschiedene Größen.

Ich würde in den Spalten A und B diese Informationen basierend auf den Daten aus der Tabelle benötigen. Also untereinander in Spalte A in diesem Fall 177 x "T-Shirt" und in Spalte B untereinander die Größen.
Danach untenstehend weiter mit "Tank1" und den Größen usw.

Gerne mittels VBA, wäre aber auch interessant ob sich da via Formel lösen lässt...

Stehe leider gerade (wieder mal) komplett auf dem Schlauch...

Vielen Dank schon einstweilen und lg

Olli


Angehängte Dateien
.xls   Auflistung.xls (Größe: 41 KB / Downloads: 11)
WIN 10 64-Bit Pro / EXCEL Microsoft Office 365 ProPlus 64-Bit
to top
#2
Hallo Olli,

Code:
Sub AllesInAB()
  Dim i As Long, j As Long, k As Long, l As Long, m As Long
  Dim bolG As Boolean
  Dim varQ As Variant
  Dim varZ() As Variant
  varQ = Range("G1:M13").Value
  ReDim varZ(1 To Application.Sum(Range("M2:M13")), 1 To 2)
  For i = 2 To UBound(varQ, 1)
    For j = 2 To UBound(varQ, 2) - 1
      k = k + l
      l = varQ(i, j)
      If l > 0 Then bolG = True
      For m = 1 To l
        varZ(k + m, 1) = varQ(i, 1)
        varZ(k + m, 2) = varQ(1, j)
      Next m
    Next j
    If bolG = False Then
      k = k + l
      l = varQ(i, UBound(varQ, 2))
      For m = 1 To l
        varZ(k + m, 1) = varQ(i, 1)
      Next m
    Else
      bolG = False
    End If
  Next i
  Range("A1").Resize(Rows.Count - 1, 2).Offset(1) = ""
  Range("A2").Resize(UBound(varZ, 1), 2).Value = varZ
End Sub

Gruß Uwe
[-] Folgende(r) 1 Benutzer sagt Danke an Kuwer für diesen Beitrag:
  • friedensbringer
to top
#3
Hallo Uwe,

vielen Dank! Macht genau das was es soll!

Thumps_up

lg

Olli
WIN 10 64-Bit Pro / EXCEL Microsoft Office 365 ProPlus 64-Bit
to top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste