Tipps & Tricks 29.03.2012, 05:48 Uhr

Zellinhalte in Text umwandeln

Problem: Wenn ich mit bestimmten, vielleicht für Excel etwas «zweideutigen» Daten arbeite, interpretiert Excel manche Zellinhalte hartnäckig als «Zahl». Daran ändert sich auch nichts, wenn ich die Zellen bzw. Spalten markiere und das Zellformat auf «Text» ändere. Wie überzeuge ich Excel davon, aus diesen Daten wirklich reine Texte zu machen, mit denen es später auch nicht zu rechnen braucht?
Lösung: Sie könnten hierfür den «Text in Spalten»-Assistenten bemühen, der zum Beispiel in diesem Kummerkasten-Artikel beschrieben ist. Das funktioniert grundsätzlich gut, ist aber etwas umständlich, wenn Sie das öfter brauchen.
Wenn häufiger der Bedarf besteht, könnten Sie zu einem Makro greifen. Drücken Sie die Tastenkombination Alt+F11, um den VBA-Editor zu öffnen. Klicken Sie doppelt auf «Diese Arbeitsmappe». Kopieren Sie jetzt folgenden Makro-Code und fügen Sie ihn ins Code-Feld ein:
Information
Sub Format2Text()On Error Resume NextDim Zelle As ObjectDim GanzeSpalte As BooleanWith SelectionGanzeSpalte = .Address = .EntireColumn.AddressIf GanzeSpalte Then.TextToColumns Destination:=Range(Selection.Address), DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, FieldInfo:=Array(1, 2)ElseFor Each Zelle In Selection.TextToColumns Destination:=Range(Selection.Address), DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, FieldInfo:=Array(1, 2)NextEnd IfEnd WithEnd Sub
Gehen Sie nun zu Datei/Schliessen und zurück zu Excel. Verpassen Sie dem Makro unter Excel 2007 oder 2010 am besten ein Symbol in der Schnellstartleiste: Klappen Sie oben links das kleine Dreieck der «Leiste für den Schnellzugriff» auf und gehen zu Weitere Befehle. Im Ausklappmenü «Befehle auswählen» greifen Sie zu Makros, klicken «NameDerArbeitsmappe.Format2Text» an und verfrachten es per Hinzufügen-Knopf in die rechte Spalte. Unter dieser klicken Sie auf Ändern, damit Sie die Bezeichnung anpassen und ein hübsches Icon zuweisen können. Schliessen Sie die Fenster mit OK. Markieren Sie die umzuwandelnden Zellen und führen Sie das Makro über das selbst erstellte Icon aus. (PCtipp-Forum)



Kommentare
Avatar
slup
29.03.2012
... bereits bei der Eingabe zu verhindern, dass Excel eine Beschriftung wie zB die Jahreszahl "2012" als "2'012.00" darstellt, reicht es, am Anfang einen Apostroph einzugeben: '2012 Wenn die Daten nicht eingegeben werden, sondern aus einer anderen Quelle stammen (Import oder so), geht das nicht. Man möchte nicht eine grosse Menge von Zellen von Hand mit Apostroph nochmals erfassen.

Avatar
Thomas Ramel
29.03.2012
Grüezi zusammen Alternativ könnte man das auch noch etwas ausbauen und einen Entscheid pro Spalte vom User abfragen: [CODE]Sub TextSpalten_ins_Zahlenformat() 'Wandelt als Text vorliegende Zahlenwerte in 'echte' Zahlen um 'Spaltenbereich markieren (auch zu viele) und starten Dim Spalte As Range On Error Resume Next For Each Spalte In Selection.Columns Select Case MsgBox("Sollen die Werte in Spalte " & VBA.Left(Spalte.Address(0, 0), 1) _ & " als Zahlen formatiert werden?" _ & Chr(13) & Chr(13) & "[Ja] formatiert die Werte als 'Standard'" _ & Chr(13) & "[Nein] formatiert die Werte als 'Text'" _ & Chr(13) & "[Abbrechen] lässt die Spalte unverändert" _ , 515, "Spalte " & VBA.Left(Spalte.Address(0, 0), 1)) Case vbYes Columns(Spalte.Column).NumberFormat = "General" Columns(Spalte.Column).TextToColumns ', FieldInfo:=Array(1, 1) Case vbNo Columns(Spalte.Column).NumberFormat = "@" Columns(Spalte.Column).TextToColumns ', FieldInfo:=Array(1, 2) End Select Next End Sub[/CODE]