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

Zeilenumbruch in Zelle entfernen

Zeilenumbruch in Zelle entfernen
Daniel
Guten Morgen zusammen,
ich habe folgendes Problem und steh gerade aufm Schlauch.
Ich habe ein Tabelle ( Export aus einer Datenbank ) mit Text in Zellen die Zeilenumbrüche enthalten.
Diese muss ich aufgrund eines Imports durch ein bestimmtes Zeichen ersetzen.
Das funktioniert so lange bis in einer Zelle im Arbeitsblatt am Anfang des Zellinhaltes ein Zeilenumbruch vorkommt...
Die bekomme ich nicht per Makro / bzw. Ersetzen 'ersetzt'.
Hat mir jemand einen Tipp?
Vielen Dank im Voraus und einen schönen Tag.
Grüsse, Daniel

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

Betreff
Benutzer
Anzeige
AW: Zeilenumbruch in Zelle entfernen
14.04.2010 09:26:55
Beverly
Hi Daniel,
wie sieht dein bisheriger Code aus? Hast du des mit Application.Substitute bzw. mit Replace versucht - damit lassen sich auch Zeilenumbrüche (gleichgültig an welcher Position) entfernen?


AW: Zeilenumbruch in Zelle entfernen
14.04.2010 09:58:45
Daniel
Hallo Karin,
mit nachfolgendem Makro habe ich es versucht...
Sub Ersetzen()
Dim text As String
text = Tabelle1.Range("B2").Value
ActiveCell.Value = VBA.Replace(text,  Chr(10), "^")
End Sub
Habe das mit einer Zelle versucht... würde das dann auch in eine Schleife einbauen...
Entfernt werden die Zeilenumbrüche ( erzwungene mit ALT und ENTER ) im Text wenn dieser nicht am Anfang steht.
Wenn ich das mit Ersetzen versuche kommt die Meldung das ein Formelfehler vorliegt...
Grüsse, Daniel
Anzeige
AW: Zeilenumbruch in Zelle entfernen
14.04.2010 10:40:46
Beverly
Hi Daniel,
also bei mir werden mit folgendem Code alle erzwungenen Zeilenumbrüche entfernt - gleichgültig ob am Anfang oder mittendrin:
    Range("B1") = Application.Substitute(Range("B1"), Chr(10), "")



AW: Zeilenumbruch in Zelle entfernen
14.04.2010 21:52:23
Daniel
Hallo Karin,
vielen Dank für deinen Tipp!!!
Es funktioniert nun... habe deinen Code in eine Schleife gepackt und 'laufen' lassen...
Schönen Abend.
Grüsse, Daniel
AW: Zeilenumbruch in Zelle entfernen
14.04.2010 09:31:39
Tino
Hallo,
hier eine Version zum testen. (automatische Zeilenumbrüche werden nicht erkannt)
Sub BeispielCode()
Dim Regex As Object
Dim meAr()
Dim nCount&, MaxRow&
  
With Sheets("Tabelle1")

    MaxRow = .Cells(.Rows.Count, 1).End(xlUp).Row
    
    If MaxRow > 2 Then
        meAr = .Range("A2", .Cells(MaxRow, 1)).Value2
    Else
        meAr = .Range("A2", .Cells(MaxRow, 1)).Resize(, 2).Value2
        Redim Preserve meAr(1 To Ubound(meAr), 1 To 1)
    End If

    Set Regex = CreateObject("Vbscript.Regexp")
    
    With Regex
      .MultiLine = True
      .Pattern = "\n"
      .Global = True

      For nCount = 1 To Ubound(meAr)
        'ersetze Zeilenumbruch durch nichts oder ein anderes Zeichen 
         meAr(nCount, 1) = .Replace(meAr(nCount, 1), "")
      Next nCount
    
    End With
    
    .Range("A2").Resize(Ubound(meAr)) = meAr
End With
End Sub
Gruß Tino
Anzeige
AW: Zeilenumbruch in Zelle entfernen
14.04.2010 10:10:30
Daniel
Hallo Tino,
vielen Dank für deinen Beispielcode...
Ich habe diesen gestartet und bekomme die VBA Meldung 'zu wenig Speicher'... :-(
Grüsse, Daniel
vielleicht zu viele Daten?
14.04.2010 10:33:25
Tino
Hallo,
vielleicht zu viele Daten im Bereich.
Versuchen wir es und Teilen den Bereich in Teilabschnitte auf.
Sub BeispielCode()
Dim Regex As Object
Dim meAr()
Dim nCount&, MaxRow&, lngTeil&, lngStep&
Dim rngBereich As Range
Set Regex = CreateObject("Vbscript.Regexp")

With Sheets("Tabelle1")

    MaxRow = .Cells(.Rows.Count, 1).End(xlUp).Row
    Set rngBereich = .Range("A2", .Cells(MaxRow, 1))
    
    lngStep = (MaxRow - 1) / 5
    
    With Regex
      .MultiLine = True
      .Pattern = "\n"
      .Global = True
    End With
      
      For lngTeil = 1 To MaxRow - 1 Step lngStep
        
        meAr = .Range(rngBereich(lngTeil, 1), rngBereich(lngTeil + lngStep - 1, 1)).Value2

        For nCount = 1 To Ubound(meAr)
          'ersetze Zeilenumbruch durch nichts oder ein anderes Zeichen 
           meAr(nCount, 1) = Regex.Replace(meAr(nCount, 1), "^")
        Next nCount
        
        rngBereich(lngTeil, 1).Resize(Ubound(meAr)) = meAr
        
        Erase meAr
      Next lngTeil

    
    
    
End With
End Sub
Gruß Tino
Anzeige
AW: vielleicht zu viele Daten?
14.04.2010 21:55:19
Daniel
Hallo Tino,
deinen Beispielcode habe ich auch verwendet!!!
Funktioniert einwandfrei!!! Da sind wirklich zu viele Daten ;-)
Es gibt Zellen die 16.000 Zeichen enthalten!!!
Super Code!!
Auch dir vielen Dank und einen schönen Abend.
Grüsse, Daniel

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige