Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: vba: Zeichen löschen, wenn

vba: Zeichen löschen, wenn
26.02.2022 18:56:43
Die
Hallo ihr Lieben,
wieder einmal verzweifle ich über meine rudimentären vba-Kenntnisse. Ich bekomme einfach nicht alle Bedingungen zusammen: in einer Liste möchte ich das führende Leerzeichen löschen. Ich denke, LTrim wäre passend, oder?
Allerdings habe ich eine Range ("ALM11:APH500"), das habe ich noch halbwegs geschafft. Aber: es gibt in dieser Range Zellen, die nur ein Leerzeichen haben, dies soll auch bleiben (es verhindert, dass der Text der Vorgänger-Zellen sich über die ganze Zeile ergießt). Gelöscht werden sollen nur Leerzeichen ganz links, wenn danach noch was folgt - dies ist übrigens immer eine Ziffer.
Any ideas?
Vielen Dank und beste Grüße
Die Johanna
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: vba: Zeichen löschen, wenn
26.02.2022 19:06:16
Daniel
Hi

For each Zelle in Range(...)
if Zelle.value like " ?*" Then Zelle.Value = LTrim(Zelle.value)
Next
Gruß Daniel
AW: Danke - super - gelöst
26.02.2022 19:58:52
Die
Oh je,
drei kleine Zeilen, das war's. Ist ja nicht zu fassen...
Danke Daniel, das ist eine große Hilfe. Ich freue mich sehr.
Viele herzliche Grüße
Die Johanna
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeichen in Excel mit VBA löschen


Schritt-für-Schritt-Anleitung

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

  2. Füge ein neues Modul hinzu: Klicke im Menü auf Einfügen > Modul.

  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub LeerzeichenEntfernen()
        Dim Zelle As Range
        For Each Zelle In Range("ALM11:APH500")
            If Zelle.Value Like " ?*" Then
                Zelle.Value = LTrim(Zelle.Value)
            End If
        Next Zelle
    End Sub
  4. Schließe den VBA-Editor und kehre zurück zu Excel.

  5. Führe das Makro aus: Gehe zu Entwicklertools > Makros, wähle "LeerzeichenEntfernen" und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Fehler: "Komponente nicht gefunden"
    Lösung: Überprüfe, ob du die Entwicklertools aktiviert hast. Gehe zu Datei > Optionen > Menüband anpassen und aktiviere das Kästchen neben Entwicklertools.

  • Fehler: "Typen unverträglich"
    Lösung: Stelle sicher, dass die Zellen in der angegebenen Range tatsächlich Text enthalten und keine Fehlerwerte aufweisen.


Alternative Methoden

Wenn du keine VBA-Lösung verwenden möchtest, kannst du auch die Funktion TEXTKETTE in Kombination mit GLÄTTEN verwenden, um führende Leerzeichen zu entfernen:

  1. Füge in einer neuen Spalte die Formel ein:

    =GLÄTTEN(A1)
  2. Ziehen die Formel nach unten, um sie auf die gesamte Liste anzuwenden.

Diese Methode ist jedoch nicht so flexibel wie VBA, insbesondere wenn es darum geht, spezifische Bedingungen zu berücksichtigen.


Praktische Beispiele

Angenommen, du hast folgende Werte in den Zellen:

  • A1: " 123"
  • A2: " "
  • A3: " 456"

Nach Ausführung des VBA-Codes wird der Inhalt so aussehen:

  • A1: "123"
  • A2: " "
  • A3: "456"

Das führende Leerzeichen in A1 wurde entfernt, während das Leerzeichen in A2 erhalten bleibt, da es keine nachfolgenden Ziffern gibt.


Tipps für Profis

  • Verwende Trim statt LTrim, wenn du sowohl führende als auch nachfolgende Leerzeichen entfernen möchtest.
  • Teste den Code immer zuerst in einer Kopie deiner Datei, um unerwünschte Änderungen zu vermeiden.
  • Erstelle eine Benutzeroberfläche, um das Makro einfacher auszuführen, indem du einen Button in deine Excel-Oberfläche einfügst.

FAQ: Häufige Fragen

1. Kann ich das Skript auch für andere Bereiche verwenden?
Ja, du kannst die Range in der For Each-Schleife ändern, um andere Zellen zu bearbeiten.

2. Funktioniert dieser Code in Excel 2016?
Ja, der Code ist mit Excel 2016 und späteren Versionen kompatibel. Achte darauf, dass du die Entwicklertools aktiviert hast.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige