Erst einmal ein Hallo ins Forum. Ich bin neu hier angemeldet, auch wenn ich schon einiges hier gelesen und gefunden habe. Vielen Dank schon einmal dafür.
Ich versuche verzweifelt eine Lösung zu finden für mein Problem und hoffe daher auf eure Unterstützung.
Ich bin ganz neu im Thema VBA und daher noch nicht mit allen Möglichkeiten vertraut. Wenn ihr einen besseren Ansatz habt, dann würde mich das natürlich auch sehr interessieren.
Ich habe eine Spalte mit vielen beschriebenen Zellen, wovon einige einen Zeilenumbruch (ALT + ENTER) haben. Die Anzahl Zeilen variiert dabei.
Ich möchte gerne, dass die Zellen mit mehr als einer Zeile auf Zeilenbasis getrennt werden und jeweils in eine Zelle geschrieben werden.
Bsp:
A1 mit Inhalt:
Test1
Test2
Test3
A2 mit Inhalt:
Test4
A3 mit Inhalt:
Test5
Test6
Als Ergebnis möchte ich für die Spalten B1:B6 jeweils einen Eintrag TestX haben. Das ganze soll über VBA realisiert sein.
Folgendes habe ich bisher probiert. Das funktioniert bisher nur mäßig, da eine Fehlermeldung auftaucht, sobald eine Zelle nicht den abgefragten Zeilenumbruch aufweist und die On Error GoTo Anweisung nicht für alle Zeilen funktioniert.
Da es sich hier um ein reines Testscript handelt bitte ich zu vernachlässigen, dass jede Zell-Zeile in eine neue Spalte geschrieben wird. Das spielt für mich ersteinmal keine Rolle.
In einem zweiten Schritt würde ich gerne jede Zelle auf Leerzeichen überprüfen und diese entfernen, wenn sie bestehen.
Tausend Dank vorab
Hier nun der Code (wie gesagt, ist nur ein Entwurf und ich würde mich sehr über euren Input freuen). Falls von Relevanz, Ich bin mit Office 365 unterwegs:
Option Explicit
Sub UmbrücheAuflösen()
Dim r As Long 'Zeilennummer
Dim AnzahlEinträge 'Zu betrachtende Zeile innerhalb der Zelle
Dim AuswahlZeileinZelle 'Korrigierte Variable für die zu betrachtende Zeile innerhalb der Zelle _
_
für den X(0), X(1),... Befehl
Dim SourceColumn 'Spalte mit Quell-Information
Dim c 'Spalte zum beschreiben
SourceColumn = 1
c = 3
For AnzahlEinträge = 1 To 10 'Schleife für bis zu 10 Zeilenumbrüche in einer Zelle
c = c + 1 'Spalte 4 als erste zu beschreibende Spalte
AuswahlZeileinZelle = AnzahlEinträge - 1
For r = 5 To 26 'Die Anzahl Zellen variiert, ich werde das zu einem späteren Zeitpunkt _
automatisieren
If Range(Cells(r, SourceColumn), Cells(r, SourceColumn)) "" Then
x = Split(Cells(r, SourceColumn), Chr(10))
On Error GoTo weiter
Range(Cells(r, c), Cells(r, c)).Value = x(AuswahlZeileinZelle)
End If
weiter:
Next r
Next AnzahlEinträge
End Sub