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

Ganzes Tabellenblatt glätten?

Forumthread: Ganzes Tabellenblatt glätten?

Ganzes Tabellenblatt glätten?
Mike
Hallo,
ich habe in einer Tabelle zig Spalten, die ich nun glätten müsste, da dort teilweise in den einzelnen Zellen noch Leerzeichen enthalten sind. Nun ist es ja ziemlich mühsam jede einzelne Spalte zu glätten und das bei zig Dateien. Weiß jemand, wie man das gesamte Dokument bzw. das gesamte Tabellenblatt auf einmal schnell glätten kann? Gibt es da einen Befehl oder ein Skript?
Grüße
Mike
Anzeige
AW: Ganzes Tabellenblatt glätten?
20.12.2010 20:39:57
Josef

Hallo Mike,
vielleicht so.

Sub TrimCells()
  Dim objSh As Worksheet
  Dim rng As Range, rngR As Range
  Dim lngCalc As Long
  
  On Error GoTo ErrExit
  
  With Application
    .EnableEvents = False
    .ScreenUpdating = False
    lngCalc = .Calculation
    .Calculation = xlCalculationManual
  End With
  
  For Each objSh In ThisWorkbook.Worksheets
    On Error Resume Next
    Set rngR = objSh.UsedRange.SpecialCells(xlCellTypeConstants)
    Err.Clear
    On Error GoTo ErrExit
    
    If Not rngR Is Nothing Then
      For Each rng In rngR
        rng = Trim(rng)
      Next
    End If
  Next
  
  ErrExit:
  
  With Application
    .EnableEvents = True
    .ScreenUpdating = True
    .Calculation = lngCalc
  End With
  
  Set rng = Nothing
  Set rngR = Nothing
  Set objSh = Nothing
End Sub

Gruß Sepp

Anzeige
AW: Ganzes Tabellenblatt glätten?
20.12.2010 20:47:12
Mike
Hallo Sepp,
perfekt, besser geht es nicht, genau das was ich gesucht habe. ich danke Dir vielmals, Du bist eine riesengroße Hilfe. Danke.
Gruß
Mike
AW: Ganzes Tabellenblatt glätten?
20.12.2010 21:20:05
Mike
Hallo Sepp,
ich habe gerade noch festgestellt, daß die Nullen in den Spalten mit den Telefonnummern verschwinden. Hast Du vielleicht eine Idee woran das liegen könnte bzw. wie man das umgeht?
Grüße
Mike
Anzeige
AW: Ganzes Tabellenblatt glätten?
20.12.2010 21:21:02
Mike
Ich hatte mich nicht ganz präzise ausgedrückt, also, es verschwindet die erste Null für die Vorwahl.
Gruß
Mike
AW: Ganzes Tabellenblatt glätten?
20.12.2010 21:24:42
Josef

Hallo Mike,
lade eine Beispieldatei mit den ominösen Telefonnummern hoch.

Gruß Sepp

Anzeige
AW: Ganzes Tabellenblatt glätten?
20.12.2010 21:58:15
Josef

Hallo Mike,
also bei mir bleiben die Nummer nach dem Makro unverändert mit der führenden Null.

Gruß Sepp

Anzeige
AW: Ganzes Tabellenblatt glätten?
20.12.2010 22:01:45
Mike
Hallo Josef,
das sieht nur so aus, weil das so formatiert ist. Ich glaube, daß ist auch das Problem, weil ich die Spalten von Fax und Telefon nicht als Text formatiert habe, kann das sein?
grüße
Mike
AW: Ganzes Tabellenblatt glätten?
20.12.2010 22:16:48
Mike
Hallo Sepp,
das war das Problem, habe es gerade getestet, wennich die Spalte mit den Telefonnummern als Text formatiere, funktioniert es einwandfrei. danke für Deine Hilfe.
Grüße
Mike
Anzeige
AW: Ganzes Tabellenblatt glätten?
20.12.2010 22:17:41
Josef

Hallo Mike,
dann formatiere die Spalten doch als Text!

Gruß Sepp

Anzeige
AW: Ganzes Tabellenblatt glätten?
22.12.2010 00:11:07
Daniel
Hi
um ein ganzes Tabellenblatt schnell und einfach zu glätten, würde ich in einem 2. Tabellenblatt die Formel:
=Glätten(Tabelle1!A1)
einfügen und entsprechend dem genutzen Zellbereich in Tabelle1 nach unten und nach rechts kopieren.
dann kann man das Kopieren und mit Inhalte einfügen - Werte wieder in die Ausgangstabelle zurückschreiben.
als Makro sieht das ganze so aus:
Sub Glätten()
Application.ScreenUpdating = False
With ActiveSheet.UsedRange
Sheets.Add
Range(.Address).FormulaR1C1 = "=Trim('" & .Parent.Name & "'!RC)"
Range(.Address).Copy
.PasteSpecial xlPasteValues
End With
With Application
.CutCopyMode = False
.DisplayAlerts = False
ActiveSheet.Delete
.DisplayAlerts = True
End With
End Sub
Gruß, Daniel
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Ganzes Tabellenblatt glätten in Excel


Schritt-für-Schritt-Anleitung

Um ein ganzes Tabellenblatt in Excel zu glätten und Leerzeichen zu entfernen, kannst du den folgenden VBA-Code verwenden:

  1. Öffne Excel und drücke ALT + F11, um den 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 TrimCells()
        Dim objSh As Worksheet
        Dim rng As Range, rngR As Range
        Dim lngCalc As Long
    
        On Error GoTo ErrExit
    
        With Application
            .EnableEvents = False
            .ScreenUpdating = False
            lngCalc = .Calculation
            .Calculation = xlCalculationManual
        End With
    
        For Each objSh In ThisWorkbook.Worksheets
            On Error Resume Next
            Set rngR = objSh.UsedRange.SpecialCells(xlCellTypeConstants)
            Err.Clear
            On Error GoTo ErrExit
    
            If Not rngR Is Nothing Then
                For Each rng In rngR
                    rng = Trim(rng)
                Next
            End If
        Next
    
        ErrExit:
        With Application
            .EnableEvents = True
            .ScreenUpdating = True
            .Calculation = lngCalc
        End With
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Drücke ALT + F8, wähle TrimCells aus und klicke auf Ausführen.

Dieser Code entfernt Leerzeichen aus allen Zellen des aktiven Tabellenblatts und kann in allen Excel-Versionen verwendet werden.


Häufige Fehler und Lösungen

  • Fehler: Nach dem Glätten verschwinden Nullen in Telefonnummern.

    • Lösung: Stelle sicher, dass die Spalten, die Telefonnummern enthalten, als Text formatiert sind. Gehe dazu auf die Spalte, klicke mit der rechten Maustaste und wähle Zellen formatieren, dann wähle Text.
  • Fehler: Der Befehl funktioniert nicht.

    • Lösung: Überprüfe, ob du den richtigen VBA-Code eingefügt hast und dass das Makro in der aktuellen Excel-Datei ausgeführt wird.

Alternative Methoden

Wenn du keine VBA-Makros verwenden möchtest, kannst du auch eine Formel in einem neuen Tabellenblatt verwenden:

  1. Erstelle ein neues Tabellenblatt.
  2. Verwende die Formel =GLÄTTEN(Tabelle1!A1) in Zelle A1, um die Zelle von Tabelle1 zu glätten.
  3. Ziehe die Formel nach unten und nach rechts, um sie auf alle relevanten Zellen anzuwenden.
  4. Kopiere die resultierenden Werte zurück in die ursprüngliche Tabelle mit Inhalte einfügen > Werte.

Praktische Beispiele

Angenommen, du hast folgende Daten in Tabelle1:

A B
01234 Test
05678 Beispiel
01234 Excel

Nach Verwendung des VBA-Codes oder der Formel, wird die Tabelle so aussehen:

A B
01234 Test
05678 Beispiel
01234 Excel

Tipps für Profis

  • Um sicherzustellen, dass die Daten in den Spalten korrekt formatiert sind, kannst du vor der Anwendung des Makros alle relevanten Spalten als Text formatieren.
  • Du kannst das Makro anpassen, um nur bestimmte Spalten zu glätten, indem du die UsedRange-Eigenschaft auf einen bestimmten Bereich einschränkst.

FAQ: Häufige Fragen

1. Wie kann ich nur eine bestimmte Spalte glätten?
Du kannst den Bereich in der UsedRange-Eigenschaft so anpassen, dass nur die gewünschte Spalte berücksichtigt wird, z.B. objSh.Range("A:A").

2. Funktioniert das auch in Excel Online?
Leider funktionieren VBA-Makros nicht in Excel Online. Du kannst jedoch die Formelmethode verwenden, um Daten zu glätten.

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