Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1884to1888
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
Inhaltsverzeichnis

Daten einer Zeile in mehrere Zeilen auft

Daten einer Zeile in mehrere Zeilen auft
19.05.2022 12:35:46
Susanne
Hallo,
ich muss Daten aus einer Zeile in mehrere Zeilen aufteilen. Es handelt sich um eine Abfrage von Schulen, ob und wenn ja wie viele Schwimmzeiten benötigt werden siehe Dateiupload. Es gibt folgende Möglichkeiten:
Schule 1 braucht nur 1 Schwimmzeit (Spalte AI = nein => eine Zeile reicht, unverändert lassen)
Schule 2 braucht gar keine Schwimmzeit Spalte AR = nein => eine Zeile reicht, unverändert lassen
Schule 3 braucht 6 Schwimmzeiten (Spalten AI/AR/BA/BJ/BS mit "ja" beantwortet => es sollen insgesamt 6 Zeilen sein
Problem ist Schule 3: die 6 Schwimmzeiten kommen alle nacheinander in einer Zeile. Ziel ist aber, für jede Schwimmzeit 1 neue Zeile zu haben (restliche Infos aus der Zeile sollen wiederholt werden; die Detailinfos zu den Schwimmzeiten 1-6 sind ohnehin gleich). Also statt 1 Zeile sollen es 6 Zeilen sein. Die ganzen Informationen sollen am besten in einer neuen Tabelle untereinander stehen. Die Ursprungstabelle kann sich auch immer um neue Zeilen erweitern, sollte also flexibel sein.
Mit meinen Formelkenntnissen komme ich leider hier nicht weit, aber ich könnte mir vorstellen, dass ein Makro das lösen könnte?
Vielen Dank im Voraus :-)

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

Betreff
Datum
Anwender
Anzeige
AW: Daten einer Zeile in mehrere Zeilen auft
19.05.2022 14:47:37
ChakkaCor
Huhu,
Komme gerade nicht dazu das in der Excel zu machen. Aber wäre =wenn(AR4="Ja"; sverweis();"") was für dich?
Müsstest eben 6 mal die Formal machen...
Gruß
ChakkaCor
AW: Daten einer Zeile in mehrere Zeilen auft
23.05.2022 10:02:55
Susanne
Hallo ChakkaCor, danke für die Idee, ist aber m.E. nicht praktikabel, jede Schule hat max. 15 Schwimmzeiten und für die SV-Verweis Formel müsste ich unter jeder Schule (170 Stück) die Formel 15 mal einfügen sowie für jede, die neu dazu kommt ebenfalls. Und die ganzen Leerzeilen müssten am Ende wieder weg. Ich glaube, ein Makro wäre da schon der praktikablere Ansatz.
Anzeige
AW: Daten einer Zeile in mehrere Zeilen auft
19.05.2022 14:52:54
UweD
Hallo
versuch es mal so.
Code in ein normales Modul

Sub Schwimmzeiten()
Dim TB1 As Worksheet, TB2 As Worksheet
Dim Z1 As Integer, i As Integer, Anz As Integer, SP1 As Integer
Dim LR1 As Integer, LR2 As Integer, LC As Integer
Set TB1 = Sheets("Sheet1")
Z1 = 2 'Daten ab Zeile 2
SP1 = 35 'Spalte AI mit erstem Ja
LR1 = TB1.Cells(TB1.Rows.Count, "A").End(xlUp).Row 'letzte Zeile der Spalte
Set TB2 = Sheets.Add(after:=Sheets(Sheets.Count)) 'neues Blatt erstellen
TB1.Rows(1).Copy TB2.Rows(1) 'Überschrift Kopieren
For i = Z1 To LR1
LC = TB1.Cells(i, TB1.Columns.Count).End(xlToLeft).Column 'letzte Spalte der Zeile
Anz = WorksheetFunction.CountIf(TB1.Cells(i, SP1).Resize(1, LC - SP1 + 1), "Ja") 'Ja ab AI zählen
LR2 = TB2.Cells(TB2.Rows.Count, "A").End(xlUp).Row + 1 ' erste freie Zielzeile
TB1.Rows(i).Copy TB2.Rows(LR2).Resize(Anz + 1) ' x mal kopieren
Next i
End Sub
LG UweD
Anzeige
AW: Daten einer Zeile in mehrere Zeilen auft
23.05.2022 09:49:35
Susanne
Wow, das ging ja schneller als ich mich mit wieder mit der Tabelle beschäftigen konnte - vielen Dank! Funktioniert im Prinzip super, Problem ist nur noch, dass er nicht den Inhalt der ersten Zeile (2. Schwimmzeit) kopieren und so oft wiederholen soll, wie er "ja" findet, sondern jeweils die Info, die er nach dem nächsten "ja" findet. Hab ich mich wahrscheinlich missverständlich ausgedrückt.
Im Prinzip also: wenn AI = ja, dann Zeile kopieren, ans Ende der Liste anhängen und den Inhalt der Zellen AJ-AQ kopieren und in die neue Zeile in AA-AH reinkopieren (überschreiben). Dann weitersuchen nach ja (AR= ja, dann Zelle kopieren, ans Ende der Liste anhängen und den Inhalt der Zellen AS-AZ kopieren und in die weitere neue Zeile in AA-AH reinkopieren (überschreiben). Die ursprüngliche Zeile nach dem letzten gefundenen "ja" solange durchgehen und jeweils wiederholen, bis kein "ja" mehr gefunden wird (es gibt max. 15 "ja"). Am Ende können die Spalten AR-FE gelöscht werden. Die Spalten bleiben fix in der Reihenfolge, es kann also durchaus auf die konkreten Spalten abgestellt werden.
Wäre super, wenn es hierfür eine Lösung gäbe. Händisch copy paste kann es ja nicht sein...
Anzeige
AW: Daten einer Zeile in mehrere Zeilen auft
23.05.2022 11:41:55
UweD
Hallo nochmal
versuch es mal so

Sub Schwimmzeiten()
Dim TB1 As Worksheet, TB2 As Worksheet
Dim Z1 As Integer, i As Integer, J As Integer, Anz As Integer, SP1 As Integer
Dim LR1 As Integer, LR2 As Integer, Zeile As Integer, LC As Integer
Set TB1 = Sheets("Sheet1")
Z1 = 2 'Daten ab Zeile 2
SP1 = 35 'Spalte mit erstem Ja
LR1 = TB1.Cells(TB1.Rows.Count, "A").End(xlUp).Row 'letzte Zeile der Spalte
Set TB2 = Sheets.Add(after:=Sheets(Sheets.Count)) 'neues Blatt erstellen
TB1.Cells(1, 1).Resize(1, SP1 - 1).Copy TB2.Cells(1, 1) 'Überschrift Kopieren
For i = Z1 To LR1
LC = TB1.Cells(i, TB1.Columns.Count).End(xlToLeft).Column 'letzte Spalte der Zeile
Anz = WorksheetFunction.CountIf(TB1.Cells(i, SP1).Resize(1, LC - SP1 + 1), "Ja") + 1 'Ja ab AI zählen
LR2 = TB2.Cells(TB2.Rows.Count, "A").End(xlUp).Row + 1 ' erste freie Zielzeile
TB1.Rows(i).Copy TB2.Rows(LR2).Resize(Anz)  ' x mal kopieren
For J = 0 To Anz - 1
TB2.Cells(LR2 + J, SP1).Resize(1, LC - SP1 + 1).Delete xlToLeft 'Rest ab AI weglöschen
If J 
LG UweD
Anzeige
AW: Daten einer Zeile in mehrere Zeilen auft
24.05.2022 10:20:16
Susanne
Klasse, vielen Dank, so funktioniert es und hat mir viel Zeit gespart! Herzlichen Dank für Deine Mühe.
Prima. Danke für die Rückmeldung. owT
24.05.2022 11:00:39
UweD

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige