Anzeige
Archiv - Navigation
1268to1272
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

Glätten mit VBA

Glätten mit VBA
WalterK
Hallo,
im Bereich A1:Z20000 möchte ich alle Zellen glätten, es sollen also nur die Leerzeichen gelöscht werden, die am Anfang und am Ende jeder Zelle vorhanden sind. Falls möglich, soll das Ergebnis die alten Zellen überschreiben.
Mein Versuch (siehe unten) klappt jedenfalls nicht:
Option Explicit
Sub Glätten()
ThisWorkbook.Worksheets("Tabelle1").Range(.Cells(1, 1), .Cells(26, 20000)) = WorksheetFunction. _
Trim(ThisWorkbook.Worksheets("Tabelle1").Range(.Cells(1, 1), .Cells(26, 20000)))
End Sub
Besten Dank für die Hilfe, Servus Walter

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Glätten mit VBA
10.07.2012 12:27:19
Rudi
Hallo,
das musst du in einer Schleife Zelle für Zelle machen.
Gruß
Rudi
AW: Glätten mit VBA
10.07.2012 13:29:41
Dieter(Drummer)
Hi Walter,
habe das aus dem Netz und evtl. kannst du damit etwas anfangen:
In ein Modul:
Sub BereichGlaetten()
  'von Klaus "Klausimausi64" Weck
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

Gruß, Dieter(Drummer)
Zuerst einen Dank an die Helfer, habe...
10.07.2012 15:17:38
WalterK
Hallo,
... eben erst gesehen, dass noch eine Antwort eingetroffen ist.
Inzwischen habe ich auch einen Code im Internet gefunden und ihn für meine Vorhaben anpassen können.
Allerdings ist mir dann aufgefallen, dass nur die Leerzeichen am Ende der Zelleninhalte gelöscht werden, die am Anfang aber nicht.
Was muss ich ändern, dass sowohl die Leerzeichen am Anfang als auch die am Ende gelöscht werden.
Besten Dank und Servus, Walter
Hier noch mein derzeitiger Code:
  • Option Explicit
    Sub BereichGlätten()
    Dim Cell As Range
    Dim strIn As String
    Dim LoLetzte As Long
    LoLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows. _
    Count)
    Application.ScreenUpdating = False
    For Each Cell In ActiveSheet.Range("A1:T" & LoLetzte) 'Fehlerwerte werden gesucht und  _
    gleich gelöscht
    If IsError(Cell) Then Cell.Clear
    Next Cell
    For Each Cell In ActiveSheet.Range("A1:T" & LoLetzte) 'alle Zellen werden geglättet
    If Not IsEmpty(Cell) Then Cell.Value = RTrim(Cell.Value)
    Next
    Application.ScreenUpdating = True
    End Sub
    

  • Anzeige
    Danke, ist erledigt!
    10.07.2012 15:20:52
    WalterK

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige