Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Value-Funktion und Nachkommas

Forumthread: Value-Funktion und Nachkommas

Value-Funktion und Nachkommas
24.05.2005 14:57:54
Kai
Hallo,
wenn ich per VBA mit der Value Funktion eine Zelle mit einer Kommazahl fülle,
dann verhält sich Excel bis zur dritten Stelle so, das eine Korrekte Zahl
angezeigt wird.
Habe ich mehr als drei Nachkommastellen, wird das Komma, wie mir scheint
als Tausenderpunkt interpretiert. Auf jeden Fall schreibt Excel sehr große
Zahlen in das Feld.
Selbst Formatieren oder verschiedenste Einstellungen mit fixen Nachkommastellen
(noch die Recherche bei Herber) haben mich weiter gebracht.
Ich möchte aber auch das "Replacen" der Kommas durch Punkte aus
Performance-Gründen vermeiden.
Hat jemand dafür eine Lösung.
Danke im Voraus
Kai
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Value-Funktion und Nachkommas
24.05.2005 15:09:40
Ralf
Hi Kai,
zunächst, Value ist keine Funktion sondern eine Eigenschaft. Für Dein geschildertes Problem gibt es aus meiner Sicht 2 mögliche Ursachen.
1. Du hast den falschen Ländercode eingestellt.
Das kannst Du über die 'Systemsteuerung - Ländereinstellungen' ändern
2. Du hast Deinen Variablen einen falschen Datentyp zugewiesen. Das mußt Du schon selbst kontrollieren.
Ciao, Ralf
Anzeige
AW: Value-Funktion und Nachkommas
24.05.2005 16:29:10
Erich
Hallo Kai und Ralf,
meines Erachtens hat das Problem nichts mit Ländereinstellungen oder Variablenformaten zu tun, sondern mit dem Gebrauch des Kommas in VBA. VBA ist englisch/amerikanisch und kennt kein Dezimalkomma, sondern den Dezimalpunkt. Und ein Komma innerhalb von Zahlen wird in VBA als Tausendertrennzeichen interpretiert. Wenn also per VBA eine Konstante mit Dezimalstellen in eine Zelle geschrieben werden soll, muss in der Zahl vor den Dezimalstellen ein Punkt stehen.
Im Beispiel habe ich von VBA vier Werte in Spalte A eintragen lassen, mal mit Komma, mal mit Punkt.
(Spalte A hat Format "Standard").
In Spalte B werden nur die Werte der Spalte A identisch wiedergegeben, aber mit Format "Zahl" mit 6 Nachkommastellen und Tausendertrennzeichen:

Sub tst()
[a1] = "1,234"
[a2] = "1,23456"
[a3] = "1.234"
[a4] = "1.23456"
End Sub

| A | B |
- | -------- | --------------- |
1 | 1.234 | 1.234,000000 |
2 | 123.456 | 123.456,000000 |
3 | 1,234 | 1,234000 |
4 | 1,23456 | 1,234560 |
Benutzte Formeln:
B1: =A1
B2: =A2
B3: =A3
B4: =A4

Alles klar?
Grüße aus Kamp-Lintfort
Erich
Anzeige
AW: Value-Funktion und Nachkommas
24.05.2005 16:40:49
Erich
Hallo nochmal.
Nur, um keine Missverständnisse auskommen zu lassen:
In meinem VBA-Beispiel stehen die Zahlen nur ausnahmsweise in Gänsefüßchen. Die beiden Zuweisungen mit den "Kommazahlen" währen sonst so nicht möglich, sondern verursachten schon bei der Eingabe einen VBA-"Fehler beim Kompilieren - Erwartet: Anweisungsende". Und das ist gut so!
Die Zuweisungen an [A1] und [A2] machen wenig Sinn, die beiden lauten richtig

[a3] = 1.234
[a4] = 1.23456

Grüße aus Kamp-Lintfort
Erich
Anzeige
;
Anzeige

Infobox / Tutorial

Value-Funktion und Nachkommas in Excel


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Neues Modul hinzufügen: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" > Einfügen > Modul.

  3. Code einfügen: Kopiere den folgenden Code in das Modul:

    Sub tst()
       [a1] = 1.234
       [a2] = 1.23456
       [a3] = "1,234"
       [a4] = "1,23456"
    End Sub
  4. Code ausführen: Drücke F5 oder klicke auf Run, um den Code auszuführen.

  5. Ergebnisse prüfen: Gehe zurück zu Excel und überprüfe die Werte in den Zellen A1 bis A4.


Häufige Fehler und Lösungen

  • Falscher Ländercode: Überprüfe die Ländereinstellungen in der Systemsteuerung. Wenn der Ländercode nicht korrekt ist, kann Excel das Komma als Tausendertrennzeichen interpretieren.
  • Falscher Datentyp: Stelle sicher, dass die Variablen in VBA den richtigen Datentyp haben. Wenn Du z.B. eine Kommazahl verwendest, sollte der Datentyp Double sein.
  • Kommas vs. Punkte: In VBA ist das Dezimalkomma nicht zulässig. Verwende immer den Punkt als Dezimaltrennzeichen.

Alternative Methoden

Eine Alternative zur Verwendung der Value-Funktion ist die Verwendung der CStr()-Funktion, um sicherzustellen, dass Deine Werte als Zeichenfolgen behandelt werden:

[a1] = CStr(1.234)
[a2] = CStr(1.23456)

Dies kann hilfreich sein, wenn Du sicherstellen möchtest, dass die Formatierung nicht durcheinander gerät.


Praktische Beispiele

Hier sind einige Beispiele zur Veranschaulichung:

A B
1.234 1.234,000000
123.456 123.456,000000
1,234 1.234000
1,23456 1.234560

Formeln in Spalte B:

  • B1: =A1
  • B2: =A2
  • B3: =A3
  • B4: =A4

Diese Tabelle zeigt, wie Excel unterschiedliche Eingaben interpretiert und darstellt.


Tipps für Profis

  • Verwende die Format-Funktion: Um sicherzustellen, dass Zahlen immer im gewünschten Format angezeigt werden, kannst Du die Format-Funktion in VBA verwenden. Beispiel:

    [a1] = Format(1.234, "0.00")
  • Nutze Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen in Deinem VBA-Code, um Probleme beim Ausführen zu vermeiden.


FAQ: Häufige Fragen

1. Warum werden meine Zahlen nicht korrekt angezeigt?
Das liegt wahrscheinlich daran, dass Du das falsche Dezimaltrennzeichen verwendest. In VBA musst Du immer einen Punkt verwenden.

2. Wie kann ich die Darstellung der Zahlen anpassen?
Du kannst die Format-Funktion verwenden, um das gewünschte Format in VBA zu definieren. Beispielsweise Format(DeineZahl, "0.00").

3. Was ist der Unterschied zwischen Value und CStr?
Value ist eine Eigenschaft, während CStr eine Funktion ist, die Werte in Zeichenfolgen umwandelt. Verwende CStr, um sicherzustellen, dass Deine Zahl im richtigen Format behandelt wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige