Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Text in Zahl umwandeln
17.06.2013 13:22:31
Nils
Hallo,
ich versuche verzweifelt Zahlen die als Text in einer Spalte erfasst sind, in eine Zahl umzuwandeln, damit ich damit rechnen kann.
Momentan habe ich immer dieses kleine grüne Dreieck in der oberen linken Ecke, worauf ich dann klicken und den Text in Zahlen umwandeln kann. Ich brauche das aber als Makro. Nun habe ich viel recherchiert, und folgendes funktioniert immer noch nicht:
Sub TextinZahl()
'   Umsatz- und Total Textzahlen in Zahlen umwandeln
ThisWorkbook.Worksheets("Monatsuebersicht").Activate
Range("H4") = 1
Range("H4").Copy
Range(Cells(4, 4), Cells(Cells(Rows.Count, 4).End(xlUp).Row, 4)).PasteSpecial _
Paste:=xlPasteAll, Operation:=xlMultiply, SkipBlanks:=False, Transpose:=False
Range("D4:D200").NumberFormatLocal = "#.##0,00"
Application.CutCopyMode = False 'nicht zwingend notwendig
Range("H4") = "" 'löscht die 1 aus der ersten Zeile
End Sub
Woran mag es liegen? Vielen Dank für Eure Hilfe.

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Text in Zahl umwandeln
17.06.2013 13:29:33
Hajo_Zi
Hallo Nils,
enthalten die Zellen vielleicht Leerstellen oder Zeichen die so aussehen?
Wir hatten letzten den Fall da war es Zeichen 160 was auch aussieht wie Leerstelle.
Gruß Hajo

AW: Text in Zahl umwandeln
17.06.2013 13:51:15
Matze
Hallo Nils,
kannst / darfst du die Mappe hier einstellen?
Wenn die zu groß ist speichere die unter einen neuen Namen und fülle nur ein paar Musterzeilen ein.
Matze

wo steht der Code
17.06.2013 13:57:51
Rudi
Hallo,
in einem allg. Modul?
Wenn nicht, schreib ihn in eins.
Gruß
Rudi

Anzeige
AW: wo steht der Code
17.06.2013 17:48:44
Nils
Hey,
danke für die Antworten. Also der Code steht in einem allgemeinen Modul und Leerzeichen kann ich nirgendwo erkennen. Wenn ich nur kurz mit F2 in eine Zelle gehe und danach Enter drücke wandelt er es sofort in eine Zahl um, aber nicht direkt nach dem das Makro durchgelaufen ist.
Leider sind die Informationen etwas sensibel, ich versuche später mal ein Muster mit diesem Code hochzuladen. Falls noch jmdn. etwas einfällt, probiere ich es gerne. Bin leider was VBA angeht noch nicht
ganz so bewandert aber arbeite dran.
Beste Grüße

AW: wo steht der Code
17.06.2013 18:55:48
Nils
Hi,
anbei nun die Datei. Es geht um die beiden Zahlen in der Spalte "Gesamtbetrag".
https://www.herber.de/bbs/user/85873.xlsm
Vielen Dank für Eure Mühe!

Anzeige
Range("D4:D200").NumberFormat = "#,##0.00"
17.06.2013 19:19:45
robert
bb

vergiss es...sorry owT
17.06.2013 19:22:48
robert

AW: Range("D4:D200").NumberFormat = "#,##0.00"
17.06.2013 19:27:37
Matze
Hallo Leute,
die Datei hat ein eigenartiges Phänomen:
Nach dem öffnen der Datei können die Zellen D4:D5 mit grünen Hinweishaken NICHT umgewandelt werden.
Der Code zeigt keine Wirkung und auch ein direktes Format zuweisen bringt keinen Erfolg.
Geht man nun hin und wandelt die beiden Zellen mit dem grünen Pfeil "In Zahl umwandel" um,
funktioniert dieses, das hattest du ja oben schon erwähnt.
Wandelst du jetzt wieder diese Zellen D4:D5 zurück in "Text" kannst du danach den Code benutzen,
der funktioniert auf einmal, nunja, sowas kannte ich bisher auch noch nicht.
Kommst vermutlich nicht Drumherum einmalig den Bereich D4:D200 zu markieren und mit den Pfeilen in Zahl umwandeln. Frage wodurch sind diese Zellen zu Text geworden? einlesen aus Anderer Datei?
Ändere die Zeile mit der Formatzuweisung , hat Robert dir ja schon gegeben .NumberFormat
Matze

Anzeige
AW: Range("D4:D200").NumberFormat = "#,##0.00"
17.06.2013 19:31:54
Hajo_Zi
einfach, Daten, text in Spalten.
Das kann man auch mit dem Makrorecorder aufzeichnen.
Gruß Hajo

Doch so simpel, danke Hajo,..
17.06.2013 19:40:59
Matze
Hallo zusammen,
na das war doch der richtigere Weg, danke Hajo, es kann so simpel sein wenn man es weis.
https://www.herber.de/bbs/user/85874.xlsm
Matze

AW: Doch so simpel, danke Hajo,..
18.06.2013 08:41:36
Nils
Funktioniert super, danke Hajo! Ich glaube ich weiß auch wo das Problem lag :>
Der Inhalt der Zellen war durch ein Makro mit der Cells Anweisung vorgegeben:
Cells(zeile, 4) = Left(Total, Len(Total) - 4)
Wenn ich das ganze mit der Range Anweisung als Formel deklariere, dann bekomme ich gleich eine Zahl.
Range("D" & zeile).FormulaLocal = Left(Total, Len(Total) - 4)
Danke noch mal!

Anzeige
AW: Doch so simpel, danke Hajo,..
18.06.2013 08:51:14
Nils
Funktioniert super, danke Hajo! Ich glaube ich weiß auch wo das Problem lag :>
Der Inhalt der Zellen war durch ein Makro mit der Cells Anweisung vorgegeben:
Cells(zeile, 4) = Left(Total, Len(Total) - 4)
Wenn ich das ganze mit der Range Anweisung als Formel deklariere, dann bekomme ich gleich eine Zahl.
Range("D" & zeile).FormulaLocal = Left(Total, Len(Total) - 4)
Danke noch mal!

AW: Doch so simpel, danke Hajo,..
18.06.2013 10:22:03
Hajo_Zi
Du trägst keine Formel ein.
Cells(zeile, 4) = Left(Total, Len(Total) - 4)*1
Gruß Hajo
Anzeige

461 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige