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

Trim auf alle Zellen einer Spalte anwenden

Forumthread: Trim auf alle Zellen einer Spalte anwenden

Trim auf alle Zellen einer Spalte anwenden
13.11.2008 15:29:00
Dagmar
Hallo VBA-Fans,
wer kann mir sagen, wie ich die TRIM-Funktion auf alle Zellen einer Spalte anwenden kann?
Danke für die Info.
Dagmar
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Trim auf alle Zellen einer Spalte anwenden
13.11.2008 15:53:05
Uduuh
Hallo,
dafür brauchst du eine Schleife

Sub tt()
Dim rngC As Range
Application.ScreenUpdating = False
For Each rngC In Columns(1).SpecialCells(xlCellTypeConstants)
rngC = Trim(rngC)
Next
Application.ScreenUpdating = True
End Sub


Gruß aus’m Pott
Udo

Anzeige
AW: Trim auf alle Zellen einer Spalte anwenden
13.11.2008 15:55:00
robert
Hi,
probier mal das
gruß
rofu

Sub BereichGlaetten()
Dim r As Range, c As Range
On Error Resume Next
Set r = Application.InputBox("Bereich markieren, der geglättet werden soll: ", Type:=8)
For Each c In r.Cells
c.Value = Application.WorksheetFunction.Trim(c.Value)
Next c
End Sub


Anzeige
AW: Trim auf alle Zellen einer Spalte anwenden
13.11.2008 16:39:43
rofu
hi,
hast du mein makro ausprobiert, da wirst du gefragt welcher bereich und diesen markierst du einfach
oder?
gruß
rofu
AW: Trim auf alle Zellen einer Spalte anwenden
13.11.2008 16:01:00
Tino
Hallo,
hier noch eine Version.
Sub Test()
Dim tempArea
Dim Bereich As Range
Dim A As Long, B As Long
Set Bereich = Range("A1:Z10000") 'Bereich 
tempArea = Bereich
    For A = 1 To Ubound(tempArea, 1)
      For B = 1 To Ubound(tempArea, 2)
         tempArea(A, B) = Trim$(tempArea(A, B))
      Next B
    Next A

Bereich = tempArea

End Sub


Gruß Tino

Anzeige
AW: Trim auf alle Zellen einer Spalte anwenden
13.11.2008 16:31:00
Dagmar
Sorry, aber ich verstehe die Beispiele, die Ihr mir gegeben habt nicht.
Mein Versuch sah so aus:

Sub führende_leerzeichen()
Dim Sparte As String 'Sparte ist die Überschrift der 1. Spalte in dem Blatt GesamtRoh
Sheets("GesamtRoh").Select
Sparte = Trim(Sparte) 'Die trim-Funktion muss doch so aussehen
End Sub


Kann ich nicht mit ColumnHeads=true VBA sagen, dass ich Überschriften habe und dann einfach sagen er soll die Spalte mit der überschrift "Sparte" trimmen?
Vielen Dank schon mal für die Antworten (bitte für nen kleinen Dummy erklären)
Grüße
Dagmar

Anzeige
AW: Trim auf alle Zellen einer Spalte anwenden
13.11.2008 17:04:00
rofu
hi,
hast du mein makro ausprobiert, da wirst du gefragt welcher bereich und diesen markierst du einfach
oder?
gruß
rofu
AW: Trim auf alle Zellen einer Spalte anwenden
13.11.2008 17:08:00
Tino
Hallo,
du kannst doch den Bereich nach Belieben anpassen.
Beispiele:
'einen zusammenhengenten Zellbereich 
Set Bereich = Range("A1:Z10000") 'Bereich 

'oder eine ganze Spalte 
Set Bereich = Columns(5) 'Bereich 

'oder ab A1 bis zur letzten gefüllten in Spalte A 
Set Bereich = Range("D2", Cells(Rows.Count, "D").End(xlUp)) 'Bereich 

'oder mit einen Namen den der Zellbereich hat 
Set Bereich = Range("Mein_Zellberich_Name") 'Bereich 


Gruß Tino

Anzeige
Korrektur
13.11.2008 17:11:00
Tino
Hallo,
hier war der Hilfetext falsch
'oder ab D2 bis zur letzten gefüllten in Spalte D
Set Bereich = Range("D2", Cells(Rows.Count, "D").End(xlUp)) 'Bereich
Gruß Tino
;
Anzeige
Anzeige

Infobox / Tutorial

TRIM-Funktion auf alle Zellen einer Spalte anwenden


Schritt-für-Schritt-Anleitung

Um die TRIM-Funktion in Excel auf alle Zellen einer Spalte anzuwenden, kannst Du einen VBA-Makro verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.
  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
  3. Füge den folgenden Code in das Modul ein:
Sub TrimAllCellsInColumn()
    Dim rngC As Range
    Application.ScreenUpdating = False
    For Each rngC In Columns(1).SpecialCells(xlCellTypeConstants)
        rngC.Value = Application.WorksheetFunction.Trim(rngC.Value)
    Next rngC
    Application.ScreenUpdating = True
End Sub
  1. Ändere Columns(1) in die gewünschte Spalte (z.B. Columns(2) für Spalte B).
  2. Schließe den VBA-Editor und gehe zurück zu Excel.
  3. Führe das Makro aus, indem Du ALT + F8 drückst, das Makro auswählst und auf Ausführen klickst.

Damit wird die TRIM-Funktion auf alle Zellen in der gewählten Spalte angewendet.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 1004: Die Methode 'SpecialCells' für das Objekt 'Range' ist fehlgeschlagen."

    • Lösung: Stelle sicher, dass die Spalte, die Du trimmen möchtest, tatsächlich Daten enthält. Wenn die Spalte leer ist, kann dieser Fehler auftreten.
  • Fehler: "Objektvariable oder With-Blockvariable nicht festgelegt."

    • Lösung: Überprüfe, ob die Spalte existiert und ob Du den richtigen Bereich angegeben hast.

Alternative Methoden

Es gibt verschiedene Möglichkeiten, die TRIM-Funktion auf Zellen in Excel anzuwenden:

  1. Direkt in einer Zelle: Du kannst die TRIM-Funktion direkt in einer Zelle verwenden, um einen bestimmten Text zu trimmen:

    =TRIM(A1)
  2. VBA mit InputBox zur Bereichsauswahl: Hier ist ein weiteres Beispiel, das es Dir ermöglicht, einen bestimmten Bereich auszuwählen:

    Sub TrimSelectedRange()
       Dim r As Range, c As Range
       On Error Resume Next
       Set r = Application.InputBox("Bereich markieren, der geglättet werden soll: ", Type:=8)
       For Each c In r.Cells
           c.Value = Application.WorksheetFunction.Trim(c.Value)
       Next c
    End Sub

Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du die TRIM-Funktion in VBA verwenden kannst:

  • Trimmen eines bestimmten Bereichs: Wenn Du einen spezifischen Bereich (z.B. "A1:A10") trimmen möchtest, kannst Du folgenden Code verwenden:

    Sub TrimSpecificRange()
      Dim rng As Range
      Set rng = Range("A1:A10")
      Dim cell As Range
      For Each cell In rng
          cell.Value = Application.WorksheetFunction.Trim(cell.Value)
      Next cell
    End Sub
  • Trimmen einer ganzen Spalte: Um die gesamte Spalte A zu trimmen, verwende:

    Sub TrimColumnA()
      Dim rng As Range
      Set rng = Columns("A")
      Dim cell As Range
      For Each cell In rng
          cell.Value = Application.WorksheetFunction.Trim(cell.Value)
      Next cell
    End Sub

Tipps für Profis

  • Nutze Application.ScreenUpdating = False, um die Leistung zu verbessern, während das Makro läuft.
  • Teste Deine Makros in einer Kopie Deiner Datei, um Datenverlust zu vermeiden.
  • Überlege, ob Du die Trim-Funktion mit LTrim oder RTrim kombinieren möchtest, um führende oder nachfolgende Leerzeichen gezielt zu entfernen.

FAQ: Häufige Fragen

1. Kann ich die TRIM-Funktion auch in Excel selbst verwenden, ohne VBA?
Ja, Du kannst die TRIM-Funktion in einer Zelle verwenden, wie z.B. =TRIM(A1).

2. Was ist der Unterschied zwischen TRIM, LTRIM und RTRIM?

  • TRIM entfernt führende und nachfolgende Leerzeichen.
  • LTRIM entfernt nur führende Leerzeichen.
  • RTRIM entfernt nur nachfolgende Leerzeichen.

3. Wie kann ich die TRIM-Funktion auf eine ganze Zeile anwenden?
Du kannst den VBA-Code anpassen, um anstatt einer Spalte eine Zeile zu trimmen, indem Du Rows(1) anstelle von Columns(1) verwendest.

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