Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bitte um Hilfe: Zeilenumbrüche ersetzen

Forumthread: Bitte um Hilfe: Zeilenumbrüche ersetzen

Bitte um Hilfe: Zeilenumbrüche ersetzen
Frank
Hallo,
ich möchte per VBA evt. vorhandene Zeilenumbrüche innerhalb von Zellen entfernen, d.h. durch "" ersetzen.
Bislang verwende ich dafür folgenden Befehl, der bei wenig Text in der Zelle auch gut funktioniert, habe ich jedoch mehrere manuelle Zeilenumbrüche innerhalb einer Zelle, erhalte ich hier jedoch immer einen Run-time Fehler und der Debug-Modus springt an.
Kann mir jemand sagen, was ich ändern muss, damit dieser Code auch bei bis zu 5 manuellen Umbrüchen innerhalb einer Zelle funktioniert ?
strFile = Replace(Replace(strFile, vbLf, ""), vbCrLf, "")
Vielen Dank im Voraus.
Gruß,
Frank
Anzeige
AW: Bitte um Hilfe: Zeilenumbrüche ersetzen
17.04.2012 21:22:20
Peter
Hallo Frank,
warum nicht ganz einfach so:
Public Sub Umbrueche_loeschen()
Dim lZeile  As Long
With ThisWorkbook.Worksheets("Tabelle1")
For lZeile = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
.Cells(lZeile, 1) = Replace(.Cells(lZeile, 1), Chr(10), "")
Next lZeile
End With
End Sub

Gruß Peter
Anzeige
AW: Bitte um Hilfe: Zeilenumbrüche ersetzen
17.04.2012 22:22:45
Frank
Hallo Peter,
vielen Dank für Deine Mitteilung !
Die Lösung von Jochen hat bei mir in diesem Fall letztendlich am besten funktioniert, da ich hier die Umbrüche nur vorübergehend entfernen muss, um sie mit einem Bildnamen zu vergleichen.
Ich werde mir Deinen Code aber auf jeden Fall auch aufheben und bestimmt auch bald an anderer Stelle verwenden können ! :-)
VG und vielen Dank nochmal - einen schönen Abend noch,
Frank
Anzeige
AW: Bitte um Hilfe: Zeilenumbrüche ersetzen
17.04.2012 21:22:44
Josef

Hallo Frank,
Sub removeLineBreaks()
  Dim rng
  
  Set rng = Selection 'oder andere Bereichsangabe!
  
  With rng
    .Replace What:=vbLf, Replacement:=" "
    .Replace What:=vbCrLf, Replacement:=" "
    .Rows.AutoFit
  End With
  
  Set rng = Nothing
End Sub



« Gruß Sepp »

Anzeige
AW: Bitte um Hilfe: Zeilenumbrüche ersetzen
17.04.2012 22:20:29
Frank
Hallo Sepp,
vielen Dank für Deine Mitteilung !
Die Lösung von Jochen hat bei mir in diesem letztendlich am besten funktioniert.
Ich habe aber schon eine Verwendungsmöglichkeit für Deinen Code gefunden und werde damit auf jeden Fall auch arbeiten ! :-)
VG und vielen Dank nochmal für Deine Hilfe - einen schönen Abend noch,
Frank
Anzeige
AW: Bitte um Hilfe: Zeilenumbrüche ersetzen
17.04.2012 21:25:15
JoWe
Hallo Frank,
so vllt::
strFile = Replace(strFile, vbLf," ", 1, 99)

wenn mehr als 99 x vbLf vorkommt, musst Du erhöhen.
oder auch so:
Sub changer(strFile)
Dim c As Long
For c = 1 To Len(strFile)
If Mid(strFile, c, 1) = Chr(10) Then
Mid(strFile, c, 1) = " "
End If
Next
MsgBox strFile
End Sub

toi - toi - toi
Gruß
Jochen
Anzeige
AW: Bitte um Hilfe: Zeilenumbrüche ersetzen
17.04.2012 22:17:57
Frank
Hallo Jochen,
ein ganz dickes Danke dafür - die erste Möglichkeit ist genau, wonach ich gesucht hatte und funktioniert wunderbar ! :-)
Das hat mich heute echt gerettet und selbst wäre ich da wohl nie drauf gekommen.
VG und einen schönen Abend noch,
Frank
AW: Bitte um Hilfe: Zeilenumbrüche ersetzen
17.04.2012 23:16:40
Frank
Hallo Jochen,
nachdem mir Dein Code schon so geholfen hat, habe ich nun doch noch eine kleine Frage - die hat sich jetzt erst beim Arbeiten damit ergeben: :-)
In Formeln kann kann sagen ersetze x* durch y, wodurch es egal ist, was nach einem bestimmten Wert kommt, da der Stern hier als Platzhalter funktioniert.
Geht so etwas ähnliches auch in VBA, bezogen auf Deinen ersten Code ?
Ich habe einige Zellen, bei denen nur die erste Zeile innerhalb der Zelle, d.h. alles VOR dem ersten Umbruch relevant ist.
Könnte man hier anstatt den Umbruch durch ein Leerzeichen zu ersetzen, auch sagen, ersetze den Umbruch und alles danach durch ein Leerzeichen ?
VG und nochmals danke,
Frank
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Zeilenumbrüche in Excel entfernen und ersetzen


Schritt-für-Schritt-Anleitung

Um Zeilenumbrüche in Excel zu entfernen, kannst Du VBA verwenden. Hier ist eine einfache Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code ein:

    Public Sub Umbrueche_loeschen()
       Dim lZeile As Long
       With ThisWorkbook.Worksheets("Tabelle1")
           For lZeile = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
               .Cells(lZeile, 1) = Replace(.Cells(lZeile, 1), Chr(10), "")
           Next lZeile
       End With
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus, um alle manuellen Zeilenumbrüche in der ersten Spalte der Tabelle zu entfernen.


Häufige Fehler und Lösungen

  • Run-time Fehler: Wenn Du einen Run-time Fehler erhältst, kann es daran liegen, dass in einer Zelle mehr als 5 Zeilenumbrüche vorhanden sind. Stelle sicher, dass der Code an die Anzahl der Zeilenumbrüche angepasst ist, die Du erwartest.

  • Leere Zellen: Wenn Du leere Zellen hast, kann der Code möglicherweise nicht richtig funktionieren. Verwende eine If-Bedingung, um leere Zellen zu überspringen.


Alternative Methoden

Falls Du keine VBA verwenden möchtest, kannst Du auch die Suchen und Ersetzen Funktion in Excel nutzen:

  1. Wähle den Bereich aus, in dem Du die Zeilenumbrüche entfernen möchtest.
  2. Drücke Strg + H, um das Dialogfeld „Suchen und Ersetzen“ zu öffnen.
  3. Gib in das Feld „Suchen nach“ folgendes ein: ALT + 010 (drücke ALT und halte es gedrückt, während Du 010 auf dem Ziffernblock eingibst).
  4. Lass das Feld „Ersetzen durch“ leer.
  5. Klicke auf „Alle ersetzen“.

Praktische Beispiele

Hier sind einige Beispiele für VBA-Codes, die Du verwenden kannst, um Zeilenumbrüche zu ersetzen oder zu entfernen:

  1. Zeilenumbrüche durch Leerzeichen ersetzen:

    Sub removeLineBreaks()
       Dim rng As Range
       Set rng = Selection
       With rng
           .Replace What:=vbLf, Replacement:=" ", LookAt:=xlPart
           .Replace What:=vbCrLf, Replacement:=" ", LookAt:=xlPart
           .Rows.AutoFit
       End With
       Set rng = Nothing
    End Sub
  2. Ersetzen von Zeilenumbrüchen in einem Text:

    Sub changer(strFile)
       Dim c As Long
       For c = 1 To Len(strFile)
           If Mid(strFile, c, 1) = Chr(10) Then
               Mid(strFile, c, 1) = " "
           End If
       Next
       MsgBox strFile
    End Sub

Tipps für Profis

  • Nutze den VBA-Editor, um komplexere Ersetzungen durchzuführen, z.B. das Ersetzen von Zeilenumbrüchen nur in bestimmten Zellbereichen.
  • Experimentiere mit SQL-Abfragen, um Zeilenumbrüche direkt in einer Datenbank zu entfernen, bevor Du die Daten in Excel importierst.
  • Berücksichtige, dass Word ebenfalls eine Funktion hat, um alle Zeilenumbrüche zu entfernen (Tastenkombination: Strg + H und ALT + 010 in das Suchfeld eingeben).

FAQ: Häufige Fragen

1. Wie kann ich alle Zeilenumbrüche in Word entfernen? Verwende die Suchen und Ersetzen Funktion in Word. Gib im Feld „Suchen nach“ ^p ein und lasse das Feld „Ersetzen durch“ leer.

2. Gibt es eine Tastenkombination, um Zeilenumbrüche in Excel schnell zu entfernen? Es gibt keine direkte Tastenkombination, aber Du kannst die Suchen und Ersetzen Funktion verwenden, die mit Strg + H aufgerufen wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige