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

Forumthread: Zellenformat: Text

Zellenformat: Text
Manuela
Hallo,
ich brauche erneut Eure Hilfe! Bin fast am verzweifeln.. :-(
Ich Importiere über eine CSV-Datei Daten (reine Zahlen & Zahlen mit Buchstaben/Sonderzeichen) in Spalte A meines 2. Tabellenblattes. In Spalte B bereite ich die Daten dann mit Formeln auf. Z.B. =WENN(Länge(A1...), =WENN(Länge(A2...) etc. Dies funktioniert auch ohne Probleme.
Allerdings habe ich nun folgendes Problem:
Formatierungen:
Tabelle 2, Spalte A: Formatiert als Standard
Tabelle 2, Spalte B: Formatiert als Standard
Tabelle 1, Spalte C: Formatiert als Text
Wenn ich jetzt Tabelle2 (Spalte B) kopiere und in Tabelle1 (Spalte C) nur die Werte einfüge, dann werden mir die Werte in der Zelle als "xxxxxxE+12" angezeigt. Beim anklicken der Zelle wird oben in der Leiste der richtige Wert angezeigt. In der Zelle jedoch nur ein "xxxxxxE+12".
Meine Ideen zur Lösung des Problems waren schon folgende:
- Spalte C als Zahl ohne Dezimalstellen formatieren
Nachteil: Bei Werten mit führenden Nullen, werden diese abgeschnitten
- Spalte C als Benutzerdefiniert formatieren "000000000" oder "0########"
Nachteil: In der Zelle wird der richtige Wert angezeigt, aber in der Leiste oben nicht. Z.B. Wenn in der Zelle der Wert "500" eingetragen wird, dann füllt er es mit Nullen auf ("000000500"), in der Leiste oben steht dann allerdings nur "500"
- Spalte C als Text formatieren
Nachteil: Man müsste per F2+Enter-Makro die ganze Spalte C durchlaufen lassen (bei 10.000 Daten? Uff!)
Was möchte ich eigentlich?
Im Idealfall hätte ich gern eine Spalte C die als Text formatiert ist und alle Werte richtig angezeigt werden. Also nicht als "xxxxxxxE+12", sondern als der Wert der oben auch in der Leiste steht nachdem die Zelle angeklickt wurde.
oder
Eine Spalte C die ich als Zahl ohne Dezimalstellen formatieren ist, OHNE das mir die führenden Nullen gestrichen werden.
Ich habe meine Tabelle1 als Anlage beigelegt (als Beispieldatei). Jemand eine Idee wie ich dieses Problem lösen könnte?
https://www.herber.de/bbs/user/79647.xls
LG,
Manu
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zellenformat: Text
03.04.2012 15:07:44
Rudi
Hallo,
die mit den Führenden Nullen sind Text, die mit E+12 sind Zahlen.
C:C markieren, F5 (Gehe zu), Inhalte, Konstanten, nur Zahlen anhaken, OK. F2, Strg+Enter. Fertig.
Gruß
Rudi
AW: Zellenformat: Text
04.04.2012 07:19:00
Manuela
Hallo Rudi,
vielen Dank für den Tipp! Es Klappt wunderbar :-)
Da dieser Vorgang nach jedem Importieren von Daten passieren muss, dachte ich an eine VBA-Lösung. Ich habe mir folgendes gebastelt:

Sub a_Makro1()
On Error GoTo Fehler
Columns("C:C").SpecialCells(xlCellTypeConstants, 1).Select
Application.SendKeys "{F2}", True
Application.SendKeys "^{ENTER}", True
Fehler:
Exit Sub
End Sub
Dieses Makro funktioniert, aber ich habe schon öfter gelesen, dass Sendkeys keine gute Möglichkeit ist. Daher die Frage: Gibt's eine bessere Lösung?
Achja, und nochwas:
Wenn ich in das Makro ein "Tabelle1.Range("A2").Select" hinter die Funktion Sendkeys einbaue, damit meine Selektion aufgehoben wird, dann funktioniert das Makro nicht mehr. Warum ist das so?!
LG,
Manu
Anzeige
AW: Zellenformat: Text
04.04.2012 08:19:21
Peter
Guten Morgen Manuela,
die "SendKeys"-Anweisung wird von VBA erst dann ausgeführt, wenn das Makro eine Pause macht bzw. zum Stillstand kommt. Eine solche Pause kann auch künstlich herbeigeführt werden:
Sub a_Makro1()
On Error GoTo Fehler
Columns("C:C").SpecialCells(xlCellTypeConstants, 1).Select
Application.SendKeys "{F2}", True
Application.SendKeys "^{ENTER}", True
Application.OnTime Now + TimeValue("00:00:02"), "Makro2"
Fehler:
Exit Sub
End Sub

Sub Makro2()
Range("Tabelle1!a2").Select
End Sub
Es genügt eine Pause von 2 Sekunden. Wird die Pause nicht gemacht, dann wird "SendKeys" auf die Zelle "A2" angewandt!
M.f.G. Peter Kloßek
Anzeige
AW: Zellenformat: Text
04.04.2012 09:17:19
Manuela
Hallo,
Danke Peter! Deine Makroanpassung klappt gut. Eine andere Methode als die mit Sendkeys gibt es nicht oder?
@Rudi:
Hallo,
die mit den Führenden Nullen sind Text, die mit E+12 sind Zahlen.
C:C markieren, F5 (Gehe zu), Inhalte, Konstanten, nur Zahlen anhaken, OK. F2, Strg+Enter.  _
Fertig.
Gruß
Rudi

Auf den ersten Blick funktioniert deine Möglichkeit echt super, allerding ist mir beim Prüfen der Daten aufgefallen, dass jetzt in jeder geänderten Zelle der gleiche Inhalt steht! Das ist natürlich doof, weil ja jeder "xxxxxxxE+12" Wert ein anderer ist.
Ich hoffe Du/Ihr hast/habt eine neue Lösung für mein Problem.
LG,
Manu
Anzeige
AW: Zellenformat: Text
04.04.2012 11:19:50
Rudi
Hallo,
da hast du Recht. Ich bin blöd.
Sub aaa()
columns(3).specialcells(xlCellTypeConstants,1).numberformat="0"
End Sub
Gruß
Rudi
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Zellenformat in Excel: Textformatierung für Zahlen und Text


Schritt-für-Schritt-Anleitung

Um eine Zelle in Excel als Text zu formatieren, insbesondere wenn Du mit Daten arbeitest, die aus einer CSV-Datei importiert wurden, folge diesen Schritten:

  1. Markiere die Zellen oder Spalten: Wähle die Spalte (z.B. Spalte C), die Du als Text formatieren möchtest.

  2. Öffne das Formatierungsfenster: Rechtsklicke auf die markierten Zellen und wähle „Zellen formatieren…“.

  3. Wähle das Format: Im Dialogfenster wähle die Kategorie „Text“ aus und klicke auf „OK“.

  4. Wende die Änderungen an: Um sicherzustellen, dass die Daten korrekt übernommen werden, musst Du eventuell die Zellen erneut bearbeiten. Dies kannst Du manuell durch Doppelklick oder mit einem VBA-Makro erledigen.

Sub ZellenAlsTextFormatieren()
    Columns("C:C").NumberFormat = "@"
    ' Optional: Füge hier den Code für das Bearbeiten der Zellen hinzu
End Sub

Häufige Fehler und Lösungen

  1. Problem mit "xxxxxxE+12": Wenn Du Zahlen mit führenden Nullen importierst und sie als „xxxxxxE+12“ angezeigt werden, wurden sie vermutlich als Standardzahl formatiert. Um dies zu beheben, verwende die oben beschriebene Anleitung zur Textformatierung.

  2. Führende Nullen gehen verloren: Wenn Du eine Spalte als Zahl formatierst, gehen die führenden Nullen verloren. Stelle sicher, dass Du die Spalte als Text formatierst, um dies zu vermeiden.

  3. SendKeys-Methode funktioniert nicht zuverlässig: Die Verwendung von SendKeys kann zu Problemen führen, da es von der Benutzeroberfläche abhängt. Verwende stattdessen die direkte Zellbearbeitung.


Alternative Methoden

  • VBA zur Textformatierung: Du kannst auch VBA verwenden, um eine ganze Spalte als Text zu formatieren und die Daten zu bearbeiten:
Sub VBAFormatText()
    Dim cell As Range
    For Each cell In Columns("C:C").SpecialCells(xlCellTypeConstants)
        cell.NumberFormat = "@"
        cell.Value = cell.Value ' Dies zwingt Excel, die Eingabe als Text zu interpretieren
    Next cell
End Sub
  • Benutzerdefinierte Formatierung: Wenn Du eine benutzerdefinierte Formatierung benötigst, kannst Du die Zellen als „000000“ formatieren, um sicherzustellen, dass immer 6 Ziffern angezeigt werden, auch wenn der Wert kürzer ist.

Praktische Beispiele

  • Import von CSV-Daten: Wenn Du eine CSV-Datei importierst, die Zahlen und Buchstaben enthält, stelle sicher, dass die Zielspalte als Text formatiert ist, bevor Du die Daten einfügst.

  • Datenbereinigung: Nach dem Import kannst Du ein Makro verwenden, um alle Zellen in Spalte C zu formatieren und die Werte zu überprüfen:

Sub DatenBereinigen()
    Columns("C:C").SpecialCells(xlCellTypeConstants).NumberFormat = "@"
    ' Hier kann eine zusätzliche Logik zur Datenbereinigung eingefügt werden
End Sub

Tipps für Profis

  • Fehlervermeidung bei großen Datenmengen: Bei der Arbeit mit großen Datenmengen in Excel, insbesondere bei mehr als 10.000 Datensätzen, empfiehlt es sich, die Formatierung mit einem Makro zu automatisieren.

  • Verwendung von Anführungszeichen: Um sicherzustellen, dass Excel die Eingabe als Text interpretiert, kannst Du Anführungszeichen verwenden. Zum Beispiel: ="'1234".

  • VBA-Funktionalitäten nutzen: Nutze die Möglichkeiten von Excel VBA, um Deine Daten nach dem Import automatisch zu formatieren, anstatt manuell eingreifen zu müssen.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass importierte Zahlen immer als Text angezeigt werden?
Formatiere die Zielspalte vor dem Import als Text. Verwende dafür die Zellenformatierung oder VBA.

2. Was tun, wenn ich die SendKeys-Methode vermeiden möchte?
Nutze stattdessen eine Schleife in VBA, um jede Zelle direkt zu bearbeiten und als Text zu formatieren.

3. Wie kann ich Excel zwingen, eine Zelle als Text zu interpretieren?
Indem Du vor der Eingabe ein Apostroph (') vor die Zahl setzt oder die Zelle als Text formatierst.

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