Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1448to1452
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

Punkt durch Komma erstetzen OHNE Replace

Punkt durch Komma erstetzen OHNE Replace
06.10.2015 10:19:04
Hannes
Hallo Zusammen, hoffe ihr könnt mir helfen :S
ich habe folgendes Problem:
Ich muss ein . durch ein , ersetzen. Das funktioniert auf den Desktop PC super schnell mit Hilfe der Replace Funktion.
Auf den Server (wo das Makro später laufen soll) dauert dies aber ca. 5 Minuten.
Gibt es eine andere Möglichkeit ein Punkt durch ein Komma zu ersetzen ohne die Replace Funktion zu verwenden?

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Punkt durch Komma erstetzen OHNE Replace
06.10.2015 10:55:26
Daniel
Hi
kommt darauf an, was du machen willst.
Englische Zahlen mit Punkt als Dezimalzeichen in deutsche Zahlen, welche Excel erkennt, wandeln?
Wenn ja und nur wenige Spalten betroffen sind, könnte man die Umwandlung auch mit Text in Spalten machen.
Ansonsten ist die Excel-Menüfunktion Ersetzen (Replace) schon das schnellste was ich kenne.
Beachte, dass VBA und Excel englisch miteinander reden, dh. wenn du englische in deutsche Zahlen wandeln willst, musst du in VBA den Punkt durch einen Punkt ersetzen.
Gruß Daniel

nicht ganz richtig bei Textzahlen
06.10.2015 11:14:48
Tino
Hallo,
das stimmt nicht so ganz,
es kommt auf die Ländereinstellung an wie bei einer Textzahl das Komma verwendet wird.
Beispiel
Sub Bsp()
Dim sZahl$, PunktOrKomma$
sZahl = "0.5"
MsgBox sZahl * 2
sZahl = "0,5"
MsgBox sZahl * 2
PunktOrKomma = IIf("0.5" * 2 = 1, ".", ",")
sZahl = "0.5"
MsgBox Replace(sZahl, ".", PunktOrKomma) * 2
sZahl = "0,5"
MsgBox Replace(sZahl, ".", PunktOrKomma) * 2
End Sub
Gruß Tino

Anzeige
AW: nicht ganz richtig bei Textzahlen
06.10.2015 11:23:57
Daniel
Hi Tino
ich ging eigentlich von Range().Replace aus.
Gruß Daniel

ach so, ich von Text. oT.
06.10.2015 11:59:54
Text.

AW: Punkt durch Komma erstetzen OHNE Replace
06.10.2015 12:26:20
Hannes
Erstmal danke für eure Hilfe!!
Ich glaube ich muss mein Beispiel konkreter machen :S
Ich habe folgenden Daten als TEXT vorliegen:
A | B | C | D | E | F
0 |8.68 |29.6 |300 | 1001.89|569.97094
.
.
.
Insgesamt sind es ca. 8000 Zeilen.
Ich brauche die in Werte als ZAHL mit zwei Dezimalstellen und nicht als TEXT.

AW: Punkt durch Komma erstetzen OHNE Replace
06.10.2015 12:40:21
Daniel
Hi
wenns reicht, dass die 2 NK-Stellen angezeigt werden und die Werte aber original erhalten bleiben dann:
With Range("A:F")
.Replace ".", ".", Lookat:=part
.Numberformat = "0.00"
end with
oder ohne Replace, auch hier mit Beibehaltung der originalwerte:
Dim C As Range
For Each C In Range("A:F").Columns
C.TextToColumns _
Destination:=C(1), _
DataType:=xlFixedWidth, _
FieldInfo:=Array(0, 1), _
DecimalSeparator:=".", _
ThousandsSeparator:=","
Next
Range("A:F").NumberFormat = "0.00"
wenn die Zahlen auch hart gerundet werden sollen (nicht nur angezeigt),dann so:
Dim arr
Dim z As Long, s As Long
Dim x
With ActiveSheet.UsedRange.Resize(, 6)
arr = .Value
For z = 1 To UBound(arr, 1)
For s = 1 To UBound(arr, 2)
x = Val(arr(z, s))
If x  0 Then arr(z, s) = WorksheetFunction.Round(x, 2)
Next s
Next z
.Value = arr
End With
Gruß Daniel
Anzeige

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige