Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1840to1844
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
Inhaltsverzeichnis

Funktion Zahlenwert in VBA

Funktion Zahlenwert in VBA
27.07.2021 21:01:38
M@tt
Hallo ins Forum,
ich habe eine Frage zur Funktion Zahlenwert. Ich möchte einen Wert, eingefügt aus einer CSV-Datei, der als Dezimalzeichen einen Punkt hat, den Punkt durch Komma ersetzen. Das funktioniert mit der Excelfunktion problemlos, leider gelingt es mir mit VBA nicht, da ich die Einfügeposition über letzte Zeile ermittle. Seht bitte meinen Beispielcode, wo es eingefügt werden soll. Danke für Eure Zeit
https://www.herber.de/bbs/user/147338.xlsm
Gruß M@tt

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

Betreff
Datum
Anwender
Anzeige
AW: Funktion Zahlenwert in VBA
27.07.2021 21:33:36
PeTeR
Hallo M@tt,
der VBA-Befehl lautet:
Cells(letzteZeile, 2).Value = WorksheetFunction.NumberValue(Cells(letzteZeile, 1).Value, ".", ";")
Viel Erfolg
PeTeR
AW: Funktion Zahlenwert in VBA
27.07.2021 21:44:20
M@tt
Hallo Peter,
Vielen Dank es funktioniert einwandfrei ;-). Ich mußte in meinem Beispiel nur auf die erste Spalte umstellen.
Vielen Dank für die schnelle Hilfe, dann kann es ja weiter gehen.
Gruß M@tt
Schönen Abend
SystemSeparators
28.07.2021 15:28:36
Yal
Moin!
grundsätzlich verwendet ein Excel, das auf einem Windows in deutscher Sprache installiert, die Komma als Dezimal- und der Punkt als Tausender-Trennzeichen.
Man kann aber in "Optionen", "Erweitert" einstellen, dass Excel nicht die System-Einstellung sondern eine andere verwendet. Wenn diese andere auf punkt+Komma anstatt Komma+Punkt, dann wird deine Datei einwandfrei geladen und ist wesentlich schenller als die Transformation Zelle für Zelle.
VBA gesteuert musst Du nur noch sagen: System-Standard nicht verwenden, Datei laden, System-Standard wieder einstellen.
Sieht dann so aus (ich hatte keine Datei zu laden):

Sub Makro2()
Application.UseSystemSeparators = False
'hier Datei laden
Application.UseSystemSeparators = True
End Sub
VG
Yal
Anzeige
AW: SystemSeparators
28.07.2021 16:19:41
m@tt
Hallo Yal,
vielen Dank auch an Dich. Für mich ist die Lösung erstmal in Ordnung, da es sich um nur wenige Werte handelt, aber ich werde mir Deinen Vorschlag für später archivieren. Gruß M@tt
AW: Funktion Zahlenwert in VBA
29.07.2021 16:07:20
Daniel
Hi
wie liest du denn die CSV-Datei ein?
wenn du sie importierst, kannst du im Importassistenten im Schritt 3 einstellen, in welchem Format die Zahlen in der CSV vorliegen (Komma oder Punkt getrennt). Wenn du da das passende einstellst, müssten die Zahlen richtig in Excel ankommen.
Um an diese Einstellung zu kommen, musst du im Schritt 3 den Button WEITERE... klicken.
wenn du die Daten anders bekommst, kannst du die Umwandlung auch so durchführen, indem du den Punkt mit ERSETZEN durch das Komma austauschst. Wenn du das machst, wird Excel den neuen Wert erneut prüfen und ggf in eine Zahl wandeln.
das geht auch per VBA am einfachsten. Hierbei musst du allerdings den Punkt durch den Punkt ersetzen.
klingt unlogisch, aber wenn du das in VBA machst, wendet Excel für die Wandlung von Text nach Zahl immer die amerikanischen Formate an, egal welche Ländereinstellung dein Excel hat.
als VBA also am einfachsten: Columns(1).Replace ".", ".", xlpart
alternativ kannst du auch die Menüfunktion DATEN - DATENTOOLS - TEXT IN SPALTEN auf die Spalte anwenden und hierbei, wie beim Import beschrieben im Schritt 3 des Assistenten unter WEITER... einstellen, dass der Punkt das Dezimalzeichen sein soll.
auch das geht per Makro, verwende bitte den Recorder.
Gruß Daniel
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige