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

Statt Komma wird mit Punkt gerechnet

Statt Komma wird mit Punkt gerechnet
20.02.2006 10:38:52
Hans-Jörg
Ich habe folgendes Problem: In einer Vorlage wird, um einen negativen Betrag zu erzwingen ein Makro eingesetzt, das aufgrund des Zahlenformats "MUSS NEG" das Vorzeichen umsetzt bei positive Zahlen.
Das funktioniert, solange kein Komma eingegeben wird. Wenn Nachkommastellen eingegeben werden ignoriert das Makro das Komma und gibt die Zahl ohne Komma zurück also aus 436,78 wird -43.678,00.
Wenn ich in der Systemsteuerung die Regionaleinstellungen auf Englisch(USA) umstelle, funktioniert es;
und es funktierniert mit deutschen Einstellungen auch in anderen Vorlagen !
Was kann ich in dieser Vorlage tun, dass sie richtig rechnet. Die Vorlage wurde in Excel97 entwickelt, und in einer Mischumgebung Office 97 und Office 2003 eingesetzt.

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

Betreff
Datum
Anwender
Anzeige
AW: Statt Komma wird mit Punkt gerechnet
20.02.2006 16:54:47
ChrisL
Hallo Hans-Jörg
Schwer zu sagen ohne Hallo, Gruss und Code ;-)
Vermute du hast eine Variable vom Typ String. In diesem Fall kannst du mit Worksheetfunction.SUBSTITUTE Komma durch Punkt ersetzen. Ggf. findest du mit Applikation.International das gerade gültige Dezimaltrennzeichen raus.
Gruss
Chris
AW: Statt Komma wird mit Punkt gerechnet
20.02.2006 17:24:56
Hans-Jörg
Hallo Chris und Andere (ich bitte meine schlechten Manieren zu entschuldigen :-)),
ich habe deinen Tipp mit International ausprobiert und er zeigt "The decimal seperator is ," an, eben wie in der Systemsteuerung angezeigt.
Auch an deinem Hinweis, dass es evtl. String sein kann habe ich rumprobiert, indem ich im Programm einfach 'mal eine 1 aufaddiert habe und dabei habe ich entdeckt, dass ActiveCell.FormulaR1C1 statt 4,56 456 als Zahl anliefert und dann 1 richtig dazuaddiert, wenn ich 4,50 eingebe wird 45 übergeben.
Hier die Details:
Format der Zelle: "MUSS NEG";-#.##0,00 \€;;
Code:

Private Sub Workbook_Open()
ActiveSheet.OnEntry = "EingabeModifizieren"
End Sub

Sub EingabeModifizieren()
If Not IsNumeric(ActiveCell.FormulaR1C1) Then Exit Sub
If InStr(Selection.NumberFormat, "MUSS NEG") Then ActiveCell.FormulaR1C1 = Abs(ActiveCell.FormulaR1C1) * (-1)
If InStr(Selection.NumberFormat, "MUSS POS") Then ActiveCell.FormulaR1C1 = Abs(ActiveCell.FormulaR1C1)
End Sub
Gruss (jetzt aber !)
Hans-Jörg
Anzeige
AW: Statt Komma wird mit Punkt gerechnet
20.02.2006 17:57:13
ChrisL
Hallo Hans-Jörg
Bei mir ist das Dezimaltrennzeichen sowieso ein Punkt, darum fällt mir der Test schwer.
Generell scheint "FormulaR1C1" falsch angewendet. So wie ich deinen Code verstehe, brauchst du den Wert resp. ActiveCell.Value anzusprechen.
Ich könnte mir vorstellen, dass sich dann auch das Problem mit dem Komma löst.
Gruss
Chris
AW: Statt Komma wird mit Punkt gerechnet
22.02.2006 08:33:55
Hans-Jörg
Hallo Chris,
that's it. Danke. Komisch nur, dass es manchmal funktioniert (die letzten fünf Jahre !) und manchmal nicht. Ich habe aber alle Vorlagen auf Value umgestellt. Interessanterweise zeichnet Excel Werteingaben genau mit ActiveCell.FormulaR1C1 = "12" auf ! Da macht es sich der Makrorekorder (wie immer ?!) einfach, ob Formel oder Wert, er nimmt die gleiche Eigenschaft.
Gruß
Hans-Jörg
Anzeige
Danke für die Rückmeldung o.T.
22.02.2006 09:25:18
ChrisL
Gruss
Chris

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige