Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1560to1564
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

Zeilen auftrennen

Zeilen auftrennen
24.05.2017 10:42:38
Lesepeter
Hallo zusammen,
ich stehe aktuell vor folgendem Problem:
Ich möchte jeden einzelnen Wert, der in der Zelle (z.B. in A2) mit Komma getrennt ist, in eine extra Zeile mit samt dem darauffolgenden Inhalt (A2:H2) kopieren.
Beispiel: https://www.herber.de/bbs/user/113767.xlsx
Erklärungsversuch:
Ausgangsituation:
| A | B | C
1 | 23, E13/20, E13/21, E13/23 | 001 | ABC
Ergebnis:
| A | B | C
1 | 23 | 001 | ABC
2 | E13/20 | 001 | ABC
3 | E13/21 | 001 | ABC
4 | E13/23 | 001 | ABC
Gibt es eine Möglichkeit dies Automatisiert durchzuführen? Andernfalls bleibt mir nix anderes übrig, als es manuell zu erledigen.
Danke schon mal für eure Hilfe!

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

Betreff
Datum
Anwender
Anzeige
AW: es geht
24.05.2017 10:55:16
Fennek
Sehr geehrter Herr Neumann,
nach einer ersten 1-Minuten Durchsicht ist mein Eindruck, dass es mit VBA relativ einfach möglich sein sollte, die gewünschte Struktur zu erzeugen.
Erlaubt die IT-Abteilung Ihrer Firma den Einsatz von VBA? Inwieweit können Sie von Kollegen bzw IT Ünterstützung erhalten?
mfg
AW: es geht
24.05.2017 11:07:56
Lesepeter
Bin leider auf mich allein gestellt. Bin selbst schon am werkeln, kenne mich aber zu wenig mit VBA aus, um auf das gewünschte Ergebnis zu kommen...
AW: Teste mal...
24.05.2017 11:24:26
Michael
...dieses Makro (Makro "a"), direkt in Deiner Bsp-Datei: https://www.herber.de/bbs/user/113768.xlsm
Ausgabe erfolgt auf neuem Blatt (das ich eingefügt habe, lässt sich aber auch jedesmal automatisiert anlegen).
Passt?
LG
Michael
Anzeige
AW: Teste mal...
24.05.2017 12:59:14
Lesepeter
Nicht schlecht! Die Trennung funktioniert!
Leider passen die darauffolgenden Spalten nicht ganz.
Gibt es hier noch eine Möglichkeit das anzupassen?
AW: Noch ne Variante mit Arrays...
24.05.2017 13:26:29
Daniel
Hi
probier mal das.
passend für die Datei von Michael.
sollte etwas schneller sein und übernimmt auch die Formate.
Sub b()
Dim rngQuelle As Range
Dim rngZiel As Range
Dim arr
Dim Erg As String, Rest As String, TT
Dim z As Long, s As Long
Set rngQuelle = Sheets("tabelle5").Cells(2, 1).CurrentRegion
arr = rngQuelle.Value
For z = 1 To UBound(arr, 1)
Rest = ""
For s = 2 To UBound(arr, 2)
Rest = Rest & "|" & arr(z, s)
Next
Rest = Rest & vbLf
For Each TT In Split(arr(z, 1), ",")
Erg = Erg & Trim(TT) & Rest
Next
Next
arr = WorksheetFunction.Transpose(Split(Erg, vbLf))
Set rngZiel = Sheets("Tabelle1").Cells(2, 1).Resize(UBound(arr, 1) - LBound(arr, 1) + 1, 1)
With rngZiel
.Value = arr
.TextToColumns .Cells(1, 1), DataType:=xlDelimited, Other:=True, OtherChar:="|"
rngQuelle.Rows(2).Copy
.CurrentRegion.PasteSpecial xlPasteFormats
rngQuelle.Rows(1).Copy
.CurrentRegion.Rows(1).PasteSpecial xlPasteFormats
End With
End Sub
Gruß Daniel
Anzeige
AW: Noch ne Variante mit Arrays...
24.05.2017 15:13:35
Lesepeter
Super, es funktioniert!
Noch fehlt mir zwar das verständnis, aber ich schaue mir die beiden Codes an.
Dank euch für die Hilfe, Michael und Daniel!
AW: Noch ne Variante mit Arrays...
24.05.2017 15:29:50
Daniel
Hi
das Prinzip ist hier folgendes:
1. die Tabellenwerte werden sequentiell in einen Text geschrieben.
hierbei ist der LineFeed das zeichen für eine neue Zeile und die Pipe | das zeichen für eine neue Spalte.
2. aus diesem Text wird dann ein Array erstellt (beim Trenzeichen LineFeed), welches dann in die erste Spalte geschrieben wird.
Hierbei stehen zunächst noch alle Werte für eine Zeile in einer Zelle.
3. mit TEXT IN SPALTEN werden dann dies Texte auf die Spalten verteilt. hierzu dient die Pipe als Trennzeichen.
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige