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

Leerzeichen löschen

Leerzeichen löschen
14.06.2021 10:37:30
oraculix
Hallo
In spalte A habe ich über 3200 Einträge stehen die meisten leider mit Leerzeichen zum Schluss.
Beispiel : Into the Sun -nach dem n ist ein Leerzeichen (Entsteht meist durch Kopieren und Einfügen)
Frage: Kann man per Makro alle Leerzeichen in Spalte A zum Schluss nach dem letzten Buchstaben entfernen?
Ersuche um Hilfe da ich mich nicht so gut auskenne mit Programmieren

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
schau Dir mal Trim/LTrim/RTrim an owT
14.06.2021 11:23:39
Matthias
nützlicher Hinweis
14.06.2021 11:38:26
lupo1
VBA-Trim wirkt anders als WorksheetFunction.Trim
ja, mein Hinweis war nützlich - Richtig owT
16.06.2021 00:45:05
Matthias
AW: schau Dir mal Trim/LTrim/RTrim an owT
14.06.2021 11:50:55
oraculix
ja danke sowas hab ich schon gefunden aber wie muss das makro dazu aussehen?
hier ein ansatz eines anfängers

Sub test()
Trim/LTrim/RTrim
range 1
tabelle1
End Sub

AW: mit Formeln
14.06.2021 11:24:42
Fennek
Hallo,
die Formel

=glätten(a1)
löscht das Leerzeichen am Ende. Mit Doppel-Klick die Formel auf die ganze Spalte kopieren. Danach die neue spalte mit "copy/pastevalue" zurück nach Spalte A.
mfg
AW: mit Formeln
14.06.2021 11:33:10
oraculix
danke für deine hilfe.
aber ich benötige ein makro das ausgeführt wird nachdem ich die einträge aus derr csv datei aktualisiert habe.
es soll nur nach dem letzten buchstaben alle leerzeichen löschen
Anzeige
AW: Leerzeichen löschen
14.06.2021 11:49:49
Daniel
Hi

Dim C as Range
For each C in columns(1).Specialcells(xlcelltypeconstants, 2).cells
C.Value = RTrim(C.Value)
Next
Gruß Daniel
AW: Leerzeichen löschen
14.06.2021 11:58:45
oraculix
Super vielen Dank genau so passt es.
Es dauert halt ziemlich lange kann man dass noch etwas beschleunigen dauert ca 1min derzeit bei 3200 einträgen.

Sub leerzellen_löschen()
Dim C As Range
For Each C In Columns(1).SpecialCells(xlCellTypeConstants, 2).Cells
C.Value = RTrim(C.Value)
Next
End Sub

AW: Leerzeichen löschen
14.06.2021 12:48:13
Daniel
Hi
Such mal nach "Get more speed"
Oder besser:
Werte in ein Array laden, die Schleife über das Array laufen lassen und dann das Array wider zurückschreiben.
Gruß. Daniel
Anzeige
AW: Leerzeichen löschen
14.06.2021 13:01:54
oraculix
danke
habe versucht es in eine neue mappe zu schreiben da geht es blitzschnell.
in der original tabelle dauert es mittlerweile über 2 minuten.
was meinst du damit verstehe nur bahnhof als anfänder?
Werte in ein Array laden, die Schleife über das Array laufen lassen und dann das Array wider zurückschreiben.
AW: Leerzeichen löschen
14.06.2021 13:04:43
Werner
Hallo,

Option Explicit
Public Sub Leerzeichen_Weg()
Dim loLetzte As Long, varArray As Variant, i As Long
'Blattname anpassen
With Worksheets("Tabelle1")
loLetzte = .Cells(.Rows.Count, "A").End(xlUp).Row
varArray = WorksheetFunction.Transpose(.Range("A1:A" & loLetzte))
For i = LBound(varArray) To UBound(varArray)
varArray(i) = RTrim(varArray(i))
Next i
.Range(.Cells(1, "A"), .Cells(loLetzte, "A")) = WorksheetFunction.Transpose(varArray)
End With
End Sub
Gruß Werner
Anzeige
was soll die Transponiererei? owT
14.06.2021 13:07:43
Rudi
Rückfrage
14.06.2021 13:35:34
Werner
Hallo Rudi,
ich bin jetzt, zugegebenermaßen, nicht so der Array-Experte. Da stecke ich noch in den Kinderschuhen.
Dachte, dass ein Array ein horizontales Datenfeld ist und ich die Werte beim Einlesen Transponieren muss, da sie aus der Spalte A kommen, somit also vertikal vorliegen.
Gruß Werner
AW: Rückfrage
14.06.2021 14:16:21
Rudi
Hallo,
es gibt ja auch mehrdimensionale Arrays.
Wenn du einen Bereich in ein Array einliest, bekommst du ein 2-dimensionales. arr(1 to AnzahlZeilen, 1 to AnzahlSpalten). Das kannst du dann auch einfach wieder in den (oder einen anderen) Bereich zurückschreiben. Transpose versagt übrigens, wenn du mehr als ca. 65000 Zeilen hast.
Gruß
Rudi
Anzeige
AW: Rückfrage
14.06.2021 14:22:03
Werner
Hallo,
da muss ich mich mal dran versuchen. An mehrdimensionale Arrays habe ich mich bisher noch nicht ran getraut.
Könntest du mal einen entsprechenden Code für das aktuelle Problem posten?
Und danke für den Hinweis bezüglich der Limitierung von Transpose.
Gruß Werner
AW: Rückfrage
14.06.2021 14:38:30
Daniel
Mit 2d Array so
Transponieren muss man nicht, nur eben die 2. Dimension des Arrays berücksichtigen.

Option Explicit
Public Sub Leerzeichen_Weg()
Dim loLetzte As Long, varArray As Variant, i As Long
'Blattname anpassen
With Worksheets("Tabelle1")
loLetzte = .Cells(.Rows.Count, "A").End(xlUp).Row
with .Range("A1:A" & loLetzte)
varArray = .Value
For i = 1To UBound(varArray, 1)
varArray(i, 1) = RTrim(varArray(i, 1))
Next i
.value = varArray
End With
End Sub
Übernimmt man auf diese Weise einen Zellbereich aus zwei oder mehr Zellen in ein Array, so entsteht immer ein zweidimensionales Array zur Basis 1.
Gruß Daniel
Anzeige
AW: Rückfrage
14.06.2021 14:52:54
Werner
Hallo Daniel,
danke für die "Erhellung".
Hatte mir das so in etwa vorgestellt, wie es jetzt von dir kam. Schleife über die erste Dimension des Arrays bei gleichbleibender zweiter Dimension in der Schleife.
Danke nochmal.
Gruß Werner
AW: Leerzeichen löschen
14.06.2021 13:21:54
oraculix
juhu vielen dank jetzt geht es richtig flott 1sek. alles gelöscht. vielen dank
AW: Leerzeichen löschen
14.06.2021 13:56:01
Günther
Moin,
in deiner Version geht das sehr schön ohne VBA, ohne (händisch eingegebene) Formeln und auch recht schnell… Stichwort: Power Query
 
Gruß
Günther  |  mein Excel-Blog
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige