288 Aufrufe
Gefragt in Tabellenkalkulation von Mitglied (481 Punkte)
Hallo Zusammen,

kann man formatierte Excel Daten (z.B. formatierte vorangestellte Nullen) als Text (d.h. nicht mehr durch Formatierungen änderbar) übernehmen?

Bsp.: In der Tabelle sind diese Daten als Zahl 123 gespeichert aber unterschiedlich formatiert.
Ich möchte gern die vorangestellten Nullen behalten - und zwar als Text.

00123
000123

Vlt. kann mir jemand weiterhelfen?

Danke vorab
Matthias

5 Antworten

0 Punkte
Beantwortet von
Hallo,

das geht nur mit Makro,

markiere die betreffenden Zellen.

füge im VBA-Editor (Alt+F11) in ein beliebiges Modul den folgenden Code ein und führe ihn aus (z.B. mit F5).

Sub FormatText()
For Each c In Selection.Cells
txt = Format(c.Value, c.NumberFormat)
c.NumberFormat = "@"
c.Value = txt
Next c
End Sub


Gruß Mr. K.
0 Punkte
Beantwortet von flupo Profi (17.7k Punkte)
Hi,
du kannst die Zellen mit der Funktion =TEXT() formatieren

Bsp.: in A1 steht 123
Gesucht ist 00123
Mit der Formel =TEXT(A1;"00000") wird die Zahl mit führenden Nullen
angezeigt.
Wenn du diese Zelle jetzt kopierst und im Zielbereich nur den Wert
einfügst, bekommst du die fünfstellige Zahl als Text.

Gruß Flupo
0 Punkte
Beantwortet von Mitglied (481 Punkte)
Hallo xlKing,

danke für das Makro - allerdings kommt die Fehlermeldung Überlauf.

Außerdem möchte ich auf eine bestimmte Zeile in einer bestimmten Tabelle begrenzen - geht das?

@Flupo
Die Tabelle ist ziemlich groß und es geht um diverse Einträge - mal gibt es 11 mal 12 Zeichen...
Makro ist sicherlich besser.
Danke :)
0 Punkte
Beantwortet von
Also bei mir geht's, mit allen Formaten.
An welcher Stelle kommt denn der Fehler? Bei welcher Zelle kommt der und was steht in dieser Zelle drin?

Überlauf sollte eigentlich nicht vorkommen, da die verwendeten Variablen alle vom Typ Variant sind. Kannst ja testweise mal so probieren.

Sub FormatText()
Dim c as Range, txt as String
For Each c In Selection.Cells
txt = Format(c.Value, c.NumberFormat)
c.NumberFormat = "@"
c.Value = txt
Next c
End Sub

Hast du auch schon versucht, erstmal nur einen kleinen Bereich zu markieren und darauf auszuführen?

Gruß Mr. K.
0 Punkte
Beantwortet von
Außerdem möchte ich auf eine bestimmte Zeile in einer bestimmten Tabelle begrenzen - geht das?

Verwende statt Selection.Cells z.B.
Sheets("Tabelle1").Range("A5:Z5").Cells
...