Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
900to904
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
900to904
900to904
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Mehrere aufeinander folgende Leerzeichen ersetzen

Mehrere aufeinander folgende Leerzeichen ersetzen
01.09.2007 14:34:00
Sabine
Hallo zusammen,
ich google seit 1,5 Tagen im XL-Forum nach einer Lösung, um in einem String mehrere aufeinander folgende Leerzeichen durch ein einziges Semikolon zu ersetzen.
Ich bin bisher leider nicht fündig geworden.
Könnt Ihr mir helfen?
LG
Sabine

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

Betreff
Datum
Anwender
Anzeige
AW: Mehrere aufeinander folgende Leerzeichen erset
01.09.2007 15:21:39
Rudi
Hallo,
=LINKS(A1;FINDEN(" ";A1)-1)&";"&GLÄTTEN(RECHTS(A1;FINDEN(" ";A1)))
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: Mehrere aufeinander folgende Leerzeichen erset
01.09.2007 15:27:11
Sabine
Hallo,
das funktioniert leider nicht.
versuch mal folgenden Text: "dgf dfddf dd dgdgdfdf dfg ddfd dfdg df dg gd gd dg dg"
Kann gerne auch ne Lösung in VBA sein (ist mir sogar fast lieber).
LG
Sabine

AW: Mehrere aufeinander folgende Leerzeichen erset
01.09.2007 15:30:00
Rudi
Hallo,
ich sehe in deinem Beispiel keine aufeinanderfolgenden Leerzeichen. Die sind alle einzeln.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: Mehrere aufeinander folgende Leerzeichen erset
01.09.2007 16:06:00
Rudi
Hallo,

Function MehrfacheLeerZeichenErsetzen(derString As String)
Dim strTmp As String, i As Integer, strMid As String
For i = 1 To Len(derString)
strMid = Mid(derString, i, 1)
If strMid  " " Then
strTmp = strTmp & strMid
ElseIf strMid = " " And Mid(derString, i + 1, 1)  " " Then
If Right(strTmp, 1)  ";" Then strTmp = strTmp & strMid
ElseIf Right(strTmp, 1)  ";" Then strTmp = strTmp & ";"
End If
Next
MehrfacheLeerZeichenErsetzen = strTmp
End Function


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: Mehrere aufeinander folgende Leerzeichen erset
01.09.2007 16:11:00
fcs
Hallo Sabine,
diese Ersetzung kann man mit 3 aufeinanderfolgenden Ersetzungen durchführen.
In neueren Excelversionen ( ab 2000) kannst statt der Worksheetsfunction "Substitute" auch dei VAB-FUnktion "Replace" verwenden.
Die entsprechende deutschsprachige Tabellenfunktion ist WECHSELN. Beispiel:

A
1  Abc 123  DEF     123 GhI  4567  Qrste
2         Abc 123;DEF;123 GhI;4567;Qrste
Benutzte Formeln:
A2:  =WECHSELN(WECHSELN(WECHSELN(A1; "  "; ";"); "; "; ";"); ";;"; ";")


Gruß
Franz


Sub MehrfachLeerzeichenDurchEinSemicolon()
Dim strText As String, strErgebnis As String
strText = "Abc 123  DEF     123 GhI  4567  Qrste"
With Application.WorksheetFunction
strErgebnis = .Substitute(strText, "  ", ";")
MsgBox strErgebnis
strErgebnis = .Substitute(strErgebnis, "; ", ";")
MsgBox strErgebnis
strErgebnis = .Substitute(strErgebnis, ";;", ";")
MsgBox strErgebnis
End With
End Sub
oder in etwas unübersichtlicherer Form geschachtelt:
Sub MehrfachLeerzeichenDurchEinSemicolon2()
Dim strText As String, strErgebnis As String
strText = "Abc 123  DEF     123 GhI  4567  Qrste"
With Application.WorksheetFunction
strErgebnis = .Substitute(.Substitute(.Substitute(strText, "  ", ";"), "; ", ";"), ";;", ";" _
)
MsgBox strErgebnis
End With
End Sub


Anzeige
AW: Mehrere aufeinander folgende Leerzeichen erset
01.09.2007 16:02:00
Harry
Hallo,
probier mal folgende Funktion ( in ein Modul einfügen, Aufruf mit "=dblspacekiller(String_oder_Zelle_mit_Text)"

Option Explicit
Function dblspacekiller(strSpace As String)
Dim i As Integer
Dim bolSpace As Boolean
bolSpace = False
strSpace = Trim(strSpace) 'äußere Leerzeichen löschen
If Len(strSpace) > 4 Then
For i = Len(strSpace) - 2 To 2 Step -1
strSpace = Replace(strSpace, String(i, " "), ";")
Next
End If
dblspacekiller = strSpace
End Function


Führende und abschließende Leerzeichen werden einfach entfernt, ohne Erstzung durch ";".
Gruß
Harry

Anzeige
AW: Mehrere aufeinander folgende Leerzeichen erset
01.09.2007 16:22:55
Harry
Korrektur

Option Explicit
Function dblspacekiller(strSpace As String)
Dim i As Integer
strSpace = Trim(strSpace) 'äußere Leerzeichen löschen
If Len(strSpace) >= 4 Then
For i = Len(strSpace) - 2 To 2 Step -1
strSpace = Replace(strSpace, String(i, " "), ";")
Next
End If
dblspacekiller = strSpace
End Function


AW: Mehrere aufeinander folgende Leerzeichen erset
02.09.2007 23:08:13
Sabine
Hallo an alle,
vielen Dank für die Lösungen. Werde es mir mal anschauen und hoffen, dass es auch mit längeren Texten ohne Probleme klappt.
LG
Sabine

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige