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

Dezimalstellen nur nach Bedarf

Forumthread: Dezimalstellen nur nach Bedarf

Dezimalstellen nur nach Bedarf
07.12.2013 14:26:57
Holm
Hallo liebes Forum,
hab wiedereinmal ein Problem:
Ich möchte die Zahl in einer Zelle automatisch nach der Eingabe formatiert haben und zwar in folgenden Format:
-mit 1000.er Punkt
-die Dezimalstellen nur, wenn sie eingeben werden (also bei 5,0 soll 5 in der Zelle stehen, bei 10,25 eben 10,25
Ich habe im Netz folgenden Code gefunden und in das entsprechende Tabellenblatt eingefügt:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Err
If InStr(Target.Value, ",") > 0 Then
Target.NumberFormat = "0.00"
Else
Target.NumberFormat = "0"
End If
Err:
Exit Sub
End Sub
Das funktioniert in Bezug auf die Dezimalstellen genau wie ich es haben möchte. Wie bekomme ich nun den Tausender-Punkt noch rein?
Die Zelle über Format zusätzlich anderweitig formatieren wird durch den Code immer "überschrieben" bzw übertroffen.
Kann man in diesem Code oben den Tausender-Punkt noch mit einbauen?
Achja, die Zelle über Format--Benutzerdefiniert--Format #.###,## zu formatieren wäre zwar auch FAST ideal, mich stört da nur, dass das Komma stehen bleibt, wenn mann keine Dezimalstellen eingibt. Also bei 59 steht in der Zelle dann 59, noch nicht ganz perfekt. ;-)
Danke im Voraus!

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dezimalstellen nur nach Bedarf
07.12.2013 14:28:26
Hajo_Zi
warum Makro, Zellformat, Bedingt #.##0,#

AW: Dezimalstellen nur nach Bedarf
07.12.2013 14:38:36
Holm
Hallo und danke,
ja, aber wenn ich keine Stellen NACH dem Komma eingebe, steht z.B. 2345, das Kommma störtmich dann noch, es sollte dann nur 2345 in der Zelle stehen!

Anzeige
AW: Dezimalstellen nur nach Bedarf
07.12.2013 15:01:10
Hajo_Zi
dann ändere Dein Makro.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Err
If InStr(Target.Value, ",") > 0 Then
Target.NumberFormat = "#,##0.#"
Else
Target.NumberFormat = "0"
End If
Err:
Exit Sub
End Sub
Gruß Hajo

Anzeige
AW: Dezimalstellen nur nach Bedarf
07.12.2013 17:08:36
Holm
Hab ich versucht, jetzt fehlt bei Eingabe einer Zahl ohne Dezimalstellen der Tausenderpunkt!

AW: Dezimalstellen nur nach Bedarf
07.12.2013 17:10:27
Hajo_Zi
Du hast schon das Makro erstellt, das Format auf die zweite Bedingung kopieren ohne ,# habe ich nicht als Problem angesehen.
Gruß Hajo

Anzeige
AW: Dezimalstellen nur nach Bedarf
07.12.2013 17:19:01
Holm
Das Makro hab ich im Netz gefunden und reinkopiert,
wie ich die zweite Bedingung reinbekomme, seh ich noch nicht durch.....

AW: Dezimalstellen nur nach Bedarf
07.12.2013 19:12:39
Luschi
Hallo Holm,
dann versuch es doch mal so:

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Err
If InStr(Target.Value, ",") > 0 Then
Target.NumberFormat = "#,##0.0"
Else
Target.NumberFormat = "#,##0"
End If
Err:
Exit Sub
End Sub
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Dezimalstellen nur nach Bedarf
08.12.2013 09:52:51
Holm
Super, danke...das passt nun!! :-))

AW: Dezimalstellen nur nach Bedarf
09.12.2013 14:52:15
Holm
Hallo, nun hab ich das Problem doch noch nicht ganz gelöst.
Die Formatierung für diesen speziellen Fall ist genauso wie ichs möchte, ABER:
Ich möchte diese Formatierung durch in einer einzigen Zelle so haben, nämlich in B30.
Allerdings ist B30 eine verbundene Zelle bis zu H32.
Geht das auch noch irgendwie? :-)
Anzeige
;
Anzeige

Infobox / Tutorial

Dezimalstellen nur nach Bedarf formatieren


Schritt-für-Schritt-Anleitung

Um in Excel die Nachkommastellen nur anzuzeigen, wenn sie vorhanden sind, kannst du ein VBA-Makro verwenden. Folge diesen Schritten:

  1. Öffne Excel und gehe zu dem Arbeitsblatt, in dem du die Formatierung anwenden möchtest.

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

  3. Doppelklicke auf das gewünschte Tabellenblatt im Projektfenster.

  4. Füge folgenden Code in das Code-Fenster ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Err
    If InStr(Target.Value, ",") > 0 Then
       Target.NumberFormat = "#,##0.0"
    Else
       Target.NumberFormat = "#,##0"
    End If
    Err:
    Exit Sub
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu deinem Excel-Arbeitsblatt.

  6. Gib eine Zahl ein, um die Formatierung zu testen.

Mit diesem Makro wird die Zahl so formatiert, dass die Nachkommastellen nur angezeigt werden, wenn sie eingegeben wurden.


Häufige Fehler und Lösungen

  • Fehler: Nach der Eingabe einer Zahl ohne Dezimalstellen wird das Komma angezeigt.

    • Lösung: Stelle sicher, dass du den oben angegebenen Code korrekt eingefügt hast. Das Makro sollte für Zahlen ohne Dezimalstellen #,#0 verwenden.
  • Fehler: Der Tausenderpunkt wird nicht angezeigt.

    • Lösung: Verwende die Formatierung #,##0.0 für Werte mit Dezimalstellen und #,##0 für Werte ohne Dezimalstellen.

Alternative Methoden

Wenn du keine VBA-Lösungen verwenden möchtest, kannst du auch die benutzerdefinierte Formatierung in Excel anwenden:

  1. Markiere die Zelle oder den Zellbereich, den du formatieren möchtest.
  2. Rechtsklicke und wähle „Zellen formatieren“.
  3. Wähle „Benutzerdefiniert“ und gib folgendes Format ein: #,##0.##
    • Dies zeigt Nachkommastellen nur an, wenn sie vorhanden sind.

Diese Methode ist jedoch weniger flexibel als die VBA-Lösung.


Praktische Beispiele

  • Beispiel 1: Gib 1000 in die Zelle ein. Die Zelle zeigt 1.000.
  • Beispiel 2: Gib 1000,25 ein. Die Zelle zeigt 1.000,25.
  • Beispiel 3: Gib 59 ein. Die Zelle zeigt 59, ohne ein zusätzliches Komma.

Tipps für Profis

  • Makros aktivieren: Stelle sicher, dass Makros in deiner Excel-Anwendung aktiviert sind, um das VBA-Skript auszuführen.
  • Eingaben validieren: Implementiere zusätzliche Validierungsprüfungen im Makro, um sicherzustellen, dass nur numerische Eingaben akzeptiert werden.
  • Zellen verbinden: Wenn du eine verbundene Zelle (z.B. B30 bis H32) verwendest, stelle sicher, dass die Formatierung nur auf die erste Zelle angewendet wird.

FAQ: Häufige Fragen

1. Wie kann ich das Makro in Excel 2016 anwenden?
Du kannst die Schritte im VBA-Editor wie oben beschrieben ausführen, die Vorgehensweise ist unabhängig von der Excel-Version.

2. Ist es möglich, das Format auch für andere Zellen anzuwenden?
Ja, kopiere einfach das Makro in die entsprechenden Tabellenblätter oder passe es an, damit es für mehrere Bereiche funktioniert.

3. Was passiert, wenn ich eine nicht-numerische Eingabe mache?
Das Makro könnte einen Fehler auslösen. Es ist ratsam, zusätzliche Fehlerbehandlungsroutinen im VBA-Code zu implementieren.

4. Kann ich das Format auch für Währungswerte verwenden?
Ja, du kannst das Format leicht anpassen, um Währungszeichen hinzuzufügen, indem du "$#,##0.00" für Währungsformatierungen verwendest.

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