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

Leerzeichen

Forumthread: Leerzeichen

Leerzeichen
02.03.2021 09:56:27
Ralf
Hallo,
ich habe unterschiedlich viele Wörter in jeder Zelle einer Spalte stehen, die mit unterschiedliche vielen Leerzeichen unterbrochen sind.
Das liest sich unheimlich schwer.
Ich möchte das gerne so haben das die Leerzeich, bis auf eines, zwischen den Textteilen gelöscht werden.
Hab schon diverse Sachen aufgezeichnet, aber keine zufrieden stellende Lösung erhalten.
Vielleicht gibt es hier ja des rätsels Lösung.
Gruß Ralf

Anzeige

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: =glätten()
02.03.2021 10:01:33
Fennek
Hallo,
die genannte Funktion sollte alle doppoelten Leerzeichen entfernen.
In VBA geht es NICHT mit "Trim", sondern mit "Worksheetfunction.Clean()"
mfg
ungeprüft

AW: =glätten()
02.03.2021 10:27:16
Daniel
Das heißt dann schon WorksheetFunction.Trim.
Dieses löscht in Gegensatz zu VBA.Trim auch die inneren Doppelten Leerzeichen.
Clean müsste die Excelfunktion Säubern sein, welche Zeichen mit AsCii-Code kleiner 32 löscht.
Gruß Daniel

Anzeige
WSF.Trim (entspricht nicht VBA-native.Trim)
03.03.2021 16:03:49
lupo1

AW: Leerzeichen
02.03.2021 10:01:54
Sigi.21
Hallo Ralf,
das geht doch ganz einfach: "zwei Leerzeichen" ersetzen durch "ein(1) Leerzeichen". Evtl. mehrmals wiederholen, bis alle doppelten Leerzeichen weg sind.
Gruß
Sigi

AW: Leerzeichen
02.03.2021 10:14:08
Ralf
Das sind aber pro Tabellenblatt ca. 1000 Zeilen und pro Tabelle auch ca. 100 Tabellenblätter!

Anzeige
AW: Leerzeichen
02.03.2021 10:21:45
Sigi.21
Tja,
davon hast du nichts gesagt; dann ist es eben eine Strafarbeit für dich!
Alternativ:
Ein Makro schreiben, das 9, 8 ,7 .... 2 Leerzeichen durch eins(1) ersetzt; aber bei 100 Tabellen mit je 1000 Zeilen und wieviel Spalten? wird das eine schöne Weile laufen!
Sigi

AW: Ideen für den Zeitbedarf
02.03.2021 10:28:28
Fennek
Hallo,
VBA mit einer "guten" Programmierung (Array) sollte recht schnell gehen.
Aber wer 100 Sheets anlegt ...
mfg

Anzeige
AW: Ideen für den Zeitbedarf
02.03.2021 10:42:10
Ralf
Ich hab die ja nicht angelegt, bekomme die so zur Verfügung gestellt.

Das sagen alle :-)))))
04.03.2021 20:00:08
lupo1
Die Konsequenz beim Hilfe für Frager ohne Verantwortung ist keine Hilfe zur Selbsthilfe, da umsetzbare Erkenntnisse für gute Lösungen dabei nicht anfallen.
Es gibt also nur Fisch, keine Angel.

AW: Leerzeichen
02.03.2021 10:28:56
Nepumuk
Hallo Ralf,
teste mal:
Option Explicit

Public Sub Bereinigen()
    Dim objWorksheet As Worksheet
    For Each objWorksheet In ThisWorkbook.Worksheets
        Call objWorksheet.Cells.Replace(What:=Chr$(34) & Chr$(34), Replacement:=Chr$(34), LookAt:=xlPart)
    Next
End Sub

Gruß
Nepumuk

Anzeige
AW: Leerzeichen
02.03.2021 10:35:22
Nepumuk
Hallo Ralf,
wenn es mehrere Leerzeichen sind dann besser so:
Option Explicit

Public Sub Bereinigen()
    Dim objWorksheet As Worksheet
    Dim lngIndex As Long
    For Each objWorksheet In ThisWorkbook.Worksheets
        For lngIndex = 1 To 20
            Call objWorksheet.Cells.Replace(What:=Chr$(34) & Chr$(34), Replacement:=Chr$(34), LookAt:=xlPart)
        Next
    Next
End Sub

Wenn dann deine Texte noch nicht sauber sind, einfach nochmal laufen lassen.
Gruß
Nepumuk

Anzeige
AW: Leerzeichen
02.03.2021 10:48:13
Daniel
Hi
Chr(34) ist das Anführungszeichen, du meinst wahrscheinlich Chr(32)
wenn du wissen willst, wie man die Schleife so oft laufen lässt wie Doppelte Leerzeichen vorhanden sind, dann schau dir mal meine Lösung an.
Gruß Daniel

AW: Leerzeichen
02.03.2021 10:56:55
Daniel
jedes Entfernen halbiert die Anzahl der Leerzeichen.
da eine Excelzelle maximal 2^15 Zeichen enthalten kann, sollte es einfach auchsrechnen lassen, wieviele Umläufe man maximal benötigt.
Gruß Daniel

Anzeige
AW: Leerzeichen
02.03.2021 11:02:37
Ralf
Hallo Nepomuk,
das passt auch. Vielen lieben Dank euch allen.
Ihr habt mir enorm viel Aufwand abgenommen.
VG Ralf

AW: Leerzeichen
02.03.2021 10:32:49
Daniel
Hi
Für ein Tabellenblatt so
With ActiveSheet.Cells
Do
Set Zelle = .Find(what:="  ", lookat:=xlpart)
If Zelle is Nothing then Exit do
.Replace "  ", " ", xlpart
Loop
Gruß Daniel

Anzeige
AW: Leerzeichen
02.03.2021 10:52:28
Ralf
Hallo Daniel,
das passt. Vielen Dank. Das alle anderen Blätter korrigiert werden bekomme ich alleine hin.
VG Ralf
;

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