Anzeige
Archiv - Navigation
984to988
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
984to988
984to988
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Text in Zahlen umwandeln

Text in Zahlen umwandeln
09.06.2008 12:12:00
Alexandra
Hallo,
ich habe folgendes Problem:
Es gibt eine Liste mit Produktnummern, die als Text formatiert ist. Die Laenge der einzelnen Nummern variiert von 6 zu 19 Stellen. Viele Nummern enthalten ausserdem solche Zeichen wie " ", "-" oder ".".
Da diese Liste spaeter als Grundlage fuer eine dependent data-validation dropdown-Liste verwendet werden wird, soll sie als Nummern formatiert und in aufsteigender Reihenfolge vorliegen. Ausserdem sollen alle doppelt vorkommenden Eintraege eliminiert werden.
Ich habe mit Suchen und Ersetzen die unerwuenschten Zeichen " ", "-", und "." entfernt und die Nummern danach sortiert. Das Problem: bei einer Nummer wie z.B. 65603122000100-001 (Original) wurde stattdessen 65603122000100000 eingesetzt. D.h. Excel aendert automatisch die letzte Ziffer ab.
Ausserdem zeigt Excel diese Nummern dann als 6,151E+16 an. Irgendwo spielt also der 1E Multiplikator noch mit rein.
Wie kann ich die Sonderzeichen entfernen und die Nummernliste normal formatieren?
Ich hoffe sehr auf Eure Hilfe.
Vielen Dank im Voraus!
Alexandra

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Text in Zahlen umwandeln
09.06.2008 12:29:00
Rudi
Hallo,
bei 15 Ziffern ist Schluss. Mehr geht nicht.
Gruß
Rudi

AW: Text in Zahlen umwandeln
09.06.2008 12:54:47
Reinhard
Hi Alexandra,
Alt+F11, Einfügen Modul, Code reinkopieren, Spalte anpassen, Editor schließen.
Über Extras--makro--Makro das makro tt ausführen lassen.
Spalte anpassen: In "Cells(Rows.Count, 1)" sowie "Cells(Zei,1)" steht die 1 für die 1te Spalte also A, für Spalte E demzufolge dort 5 eintragen.
Dann gleichfalls im Code in " Range("A1:A" & Zei - 1).Sort Key1:=Range("A1")" A durch E ersetzen.

Option Explicit
Sub tt()
Dim Zei As Long
For Zei = 1 To Cells(Rows.Count, 1).End(xlUp).Row
Cells(Zei, 1) = "'" & Application.WorksheetFunction.Substitute(Cells(Zei, 1), "-", "")
Cells(Zei, 1) = "'" & Application.WorksheetFunction.Substitute(Cells(Zei, 1), " ", "")
Cells(Zei, 1) = "'" & Application.WorksheetFunction.Substitute(Cells(Zei, 1), ".", "")
Cells(Zei, 1) = "'" & Application.WorksheetFunction.Substitute(Cells(Zei, 1), "'''", "")
Next Zei
Range("A1:A" & Zei - 1).Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub


Anzeige
AW: Text in Zahlen umwandeln
09.06.2008 14:16:00
Alexandra
Hallo Rudi und Reinhard,
vielen Dank fuer die schnellen Antworten. Dass es so eine Begrenzung in Excel gibt, habe ich gar nicht gewusst. Man lernt eben nie aus...
Vielen Dank fuer den VBA-Code - hat super funktioniert. Das einzige, was ich noch korrigieren musste war die Verschiebung um eine Zeile in der Spalte mit der Nummernliste, da in der ganz ersten Zeile die Ueberschrift war. Aber das habe ich ja vorher nicht beschrieben gehabt, selber schuld.
Das einzige, was jetzt noch fehlt, ist eine Filterung ohne Doppelteintraege. Wenn man die Liste als Nummern formatiert, kommt wieder die komische Schreibweise mit dem 1E-Multiplikator. Und wenn man die Liste als Text formatiert, dann funktioniert der Advanced Filter aus irgendeinem Grunde nicht. Dabei habe ich schon mit countif ueberprueft, ob und dass es hier Doppelteintraege gibt.

Anzeige
AW: Text in Zahlen umwandeln
09.06.2008 14:24:00
Reinhard
Hi Alexandra,

Option Explicit
Sub tt()
Dim Zei As Long, Z As Long
For Zei = 2 To Cells(Rows.Count, 1).End(xlUp).Row
Cells(Zei, 1) = "'" & Application.WorksheetFunction.Substitute(Cells(Zei, 1), "-", "")
Cells(Zei, 1) = "'" & Application.WorksheetFunction.Substitute(Cells(Zei, 1), " ", "")
Cells(Zei, 1) = "'" & Application.WorksheetFunction.Substitute(Cells(Zei, 1), ".", "")
Cells(Zei, 1) = "'" & Application.WorksheetFunction.Substitute(Cells(Zei, 1), "'''", "")
Next Zei
Range("A2:A" & Zei - 1).Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
For Z = Zei - 1 To 3 Step -1
If Cells(Zei, 1) = Cells(Zei - 1, 1) Then Cells(Zei, 1).EntireRow.Delete
Next Z
End Sub


Gruß
Reinhard

Anzeige
AW: Text in Zahlen umwandeln
09.06.2008 14:48:00
Alexandra
Hallo Reinhard,
der letzte Teil des VBA-Codes ist doch dafuer da, die ueberschuessigen Zeilen mit den Doppelteintraegen zu loeschen (bin ein absoluter VBA-noob)?
Das hat leider nicht geklappt. Ich nehme mal an, aus dem gleichen Grund, weshalb auch der Advanced Filter bei dieser Liste nicht klappt. Das ist das erste Mal, das so was vorkommt.
Gruesse,
Alexandra

AW: Text in Zahlen umwandeln
09.06.2008 15:06:00
Reinhard
Hallo Alexandra,
sorry, mein Fehler, mache das so:

Sub tt()
Dim Zei As Long, Z As Long
For Zei = 2 To Cells(Rows.Count, 1).End(xlUp).Row
Cells(Zei, 1) = "'" & Application.WorksheetFunction.Substitute(Cells(Zei, 1), "-", "")
Cells(Zei, 1) = "'" & Application.WorksheetFunction.Substitute(Cells(Zei, 1), " ", "")
Cells(Zei, 1) = "'" & Application.WorksheetFunction.Substitute(Cells(Zei, 1), ".", "")
Cells(Zei, 1) = "'" & Application.WorksheetFunction.Substitute(Cells(Zei, 1), "'''", "")
Next Zei
Range("A2:A" & Zei - 1).Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
For Z = Zei - 1 To 3 Step -1
If Cells(Z, 1).Value = Cells(Z - 1, 1).Value Then Cells( _
Z, 1).EntireRow.Delete
Next Z
End Sub


Gruß
Reinhard

Anzeige
AW: Text in Zahlen umwandeln
09.06.2008 17:14:00
Alexandra
Hallo Reinhard,
super, vielen Dank!
Jetzt klappt alles.
Gruesse,
Alexandra

332 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige