Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Dezimaltrennzeichen per VBA ändern (ohne Systemweite Einstellungsänderung)

2,295 views
Skip to first unread message

Stefan Paesch

unread,
Sep 30, 2010, 4:00:41 AM9/30/10
to
Moin zusammen,

bisher habe ich mich mit VBA in Access beschäftigt. Nun stehe ich in
Excel auf dem Schlauch, das fängt schon mit grundlegenden
Dingen ......

Ich möchte aus einem Tabellenblatt eine Textdatei eine Textdatei
(Komma separiert) erzeugen. Deshalb muss ich den Dezimaltrenner auf
Punkt umstellen.

In Spalte "E" stehen Werte als Zahl formartiert.
Erreichen möchte ich, dass z.B. die Zahl 1,2 zu 1.2 geändert wird.
Leider sind meine bisherigen Versuche fehlgeschlagen, die OH habe ich
leider nicht die entsprechende Lösung entdeckt.

Dim rngBereich As Range
Set rngBereich = Worksheets("Tabelle1").Range("E:E")

rngBereich.NumberFormat = "@"
rngBereich.Replace What:=",", Replacement:=".", LookAt:=xlPart,
SearchOrder:=xlByRows, MatchCase:=False

Das Komma wurde nicht durch den Punkt ersetzt.
Die Erfassung der Daten erfolgt manuell, daher soll ertst einmal das
Formaz 'Zahl' verwendet werden.

Hat jemand eine Lösung für mich?

Vielen dan Stefan.

WinXP Pro SP3, Excel2010

Stefan Paesch

unread,
Sep 30, 2010, 4:03:44 AM9/30/10
to
An der Grammatik muss ich noch ein wenig arbeiten ...!
Message has been deleted

Stefan Paesch

unread,
Sep 30, 2010, 4:44:52 AM9/30/10
to
Hallo Martin,

> Nein. Deshalb musst du das nicht. Und was soll das bringen? Du
> müsstest die zahl erst in Text umwandeln. Dann kannst du das Komma
> austauschen. Aber 14,78 ist als Zahl eben was anderes als 14.78! Es
> gibt ja den Tausendertrenner!

Die Schnittstellendatei, die erzeugt werden soll hat ein völlig
"krummes" Format.
1. Stelle = Satzkennung (ohne "")
2. bis letzte Stelle = alle Werte in "", auch die Zahlen, wobei das
Dezimaltrennzeichen zwingen ein Punkt sein muss.

z.B. $AF1BG1,"Datum","Beschreibung","1500.16"

D.h., mann kann kein Standart-Export von Excel verwenden.
Ist halt eine Uralte Schnittstelle.

Stefan

Joachim Eger

unread,
Sep 30, 2010, 4:52:32 AM9/30/10
to
Hallo Stefan,
klappt das :

Dim A As Application
Dim C As Range
Set A = Application
For Each C In Range("E:E")
C.NumberFormat = "@"
C = A.Text(A.Substitute(C.Text, ",", "."), "#,##0.00")
Next C

Viele Grüße
Joachim

Stefan Paesch

unread,
Sep 30, 2010, 6:06:43 AM9/30/10
to
Hallo Joachim,

g e i l o m a t !

Funktioniert super, so hatte ich mir das gedacht.
Vielen Dank für die schnelle Hilfe.

Viele Grüße Stefan.

0 new messages