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

Benutzerdefiniertes Zahlenformat

Benutzerdefiniertes Zahlenformat
25.04.2015 18:04:32
W.
Hallo an alle hier im Forum,
ist es möglich über das benutzerdefinierte Zahlenformat eine Ganze Zahl mit einem Strich (Bindestrich) darzustellen?
Zum besseren Verständnis:
21 oder 21,00 soll als 21,- dargestellt werden
21,5 oder 21,50 soll als 21,50 dargestellt werden
Allerdings soll Excel mit der als 21,- dargestellten Zahl noch weiterrechnen können.
Ist das über "Zahlenformat" realisierbar oder muss ich den Umweg über VBA nehmen?
Grüße und schönes WE

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Nachfragen, Musterdatei bitte
25.04.2015 19:34:44
Matze
Hallo W.Winter,
ich hab leider keine Lösung aber ich verstehe auch dein Anliegen nicht wirklich.
Die 21 oder auch 21,00 sind doch schon unterschiedlich im Format, sind das manuelle Eingaben oder mit einer Formel berechnete Ergebnisse. Dann sollte doch dieses Ergebnis dem entsprechend in das Format gebracht werden , oder?
Des weiteren wie willst du nachher mit dem Nachkommastellen weiter machen wenn 21,50 rauskommt ist das machbar aber bei 21,- ?
Hast du mal eine Musterdatei wo deine vorhandenen Formatierung gemacht sind? Wie der Aufbau aussieht und mit einer kleinen Beispiel wie es nachher aussehen soll.
Bin mir gar nicht sicher ob dies überhaupt umsetzbar ist. Womöglich nur mit VBA.
Gruß Matze

Anzeige
AW: Nachfragen, Musterdatei bitte
25.04.2015 21:10:23
W.
Hallo Matze,
Musterdatei ist eigentlich überflüssig.
Nochmal klarer ausgedrückt:
Die Eingabe von 21 soll als 21,- dargestellt werden.
Das geht mit dem benutzerdefinierten Zahlenformat "0,-" (ohne Anführungszeichen). Wenn ich in die so formatierte Zelle 20,5 eingebe rundet Excel das auf, und es erscheint ebenfalls 21,-. Ich möchte das die Nachkommastellen ,00 mit Strich erscheinen (21,00 = 21,-)und dann wenn die Nachkommastellen grösser Null sind zweistellig erscheinen (21,5 = 21,50 oder 21,55 = 21,55)
Hoffe das ich mich jetzt verständlicher ausgedrückt habe.
Grüße
WW

Anzeige
bitte Prof i ansehen, danke
25.04.2015 23:26:49
Matze
Hallo W. Winter,
ich hab weiterhin keine Lösung bin aber auf eine gespannt wenn es diese dann gibt, habe den Beitrag auf offen gestellt damit einer der Fachleute sich der Sache annehmen.
Gruß Matze

bei diesen Hinweisen kriegt meine...
26.04.2015 00:10:05
Oberschlumpf
...Glatze Haare, damit die sich sträuben können
Hi W
Zitatauszug:
"...Musterdatei ist eigentlich überflüssig..."
Wenn du mit vorhandener Datei es nicht hinbekommst, eine Lösung zu erarbeiten, wie kannst du dann von uns erwarten, dass wir es ohne Datei schaffen sollen?
Dass du es mit Datei nicht schaffst, ist nicht schlimm!
Dafür gibt es Foren wie dieses hier, wo man nachfragen kann, wenn man nicht weiterkommt.
Aber so etwas zu behaupten, wie oben zu lesen, ärgert mich.
Sorry, aber nun behaupte ich mal genau so frech, dass DU einfach nur zu faul bist, uns per Upload eine Bsp-Datei zur Verfügung zu stellen.
Ciao
Thorsten

Anzeige
mE nur über dem VBA-Umweg ...
26.04.2015 02:40:56
Matthias
Hallo
Das geht mE nur über dem VBA-Umweg (ich kann mich aber auch irren)
Probiers doch einfach so:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 And IsNumeric(Target) Then
Select Case Target / Int(Target)
Case Is = 1
Target.NumberFormat = "0.-"
Case Is  1
Target.NumberFormat = "0.00"
End Select
End If
End Sub
Gruß Matthias

Das ist bei dieser Xl-Version richtig, ...
26.04.2015 04:55:14
Luc:-?
…Matti;
warum die anderen Herren dafür extra die Datei benötigen, ist mir schleierhaft. Die Aufgabe ist doch eindeutig und erst ab Xl12/2007 mit einer Kombi von bedingtem und benutzer­definiertem Zahlen­format lösbar: =REST(A1;1)=0 → 0,–? (Strich ist länger, damit die Kommata unter­ein­ander stehen!)
WW wird aber deine VBA-Lösung benötigen, ggf mit dem von mir vorgeschlagenen Format-String.
Gruß + schöSo, Luc :-?

Anzeige
Vielen Dank, Luc! WP/StB sind entzückt ...
26.04.2015 08:34:10
lupo1
Auf die Verwendbarkeit des bedingten Zahlenformats bin ich für den Bilanz/GuV/ET-Bericht noch gar nicht gekommen:
https://www.herber.de/bbs/user/97304.xlsx
Anmerkung 1: Manche möchten dann auch noch das Minuszeichen-leading-ausgerichtet haben ... das geht - glaube ich - auch noch.
Anmerkung 2: "Genauigkeit wie angezeigt" erspart im Bilanzkontext viele dämliche Rundungsformeln.

wirklich entzückt ...
26.04.2015 08:53:45
lupo1
noch nachgeschoben:
Bei 1,01 möchte man 1,01
Bei 1,10 möchte man 1,10
Bei 1,00 möchte man 1,--
Bei 0,01 möchte man 0,01
Bei 0,00 möchte man -,--
Bei bleibt es leer! Damit kann man in einer Liste auch eben Zwischenüberschriften ohne Wert vorsehen, ohne das Format in der Werte-Spalte unterbrechen zu müssen!
Alles das kann die Lösung von Luc, erweitert auf das für =REST(A1;1)=0 bedingte Zahlenformat #.##0,––;-#.##0,––;–,––

Anzeige
Ja, man könnte ja auch das Buchungsformat ...
26.04.2015 15:04:32
Luc:-?
…etwas modifizieren, Lupo,
und für spezielle Zwecke mag auch Genauigkeit wie angezeigt günstig sein, nur nicht immer, denn Basis- von Berechnungs­daten sollten immer wenigstens eine Dezimale mehr haben als für das Berechnungs­ergebnis vorgesehen ist.
Freut mich, dass das, was ich nur der Vollständig­keit halber erwähnt hatte, nun auch noch ander­weitig nutzt. Bei einem alten Xl11-Projekt musste ich Ähnliches noch in der Art von Matti machen… ;-)
Gruß + schöRestSo, Luc :-?

Genauigkeit wie angezeigt
26.04.2015 16:28:03
lupo1
Der Sinn von "Genauigkeit wie angezeigt" ist vor allem, dass man simples Addieren und Subtrahieren von Geldbeträgen, wie es bei Buchhaltung und Steuerberatung üblich ist, gnadenlos ohne Sicherheitsvorrichtungen wie RUNDEN durchziehen kann (Kontrollen verwendet man dort sowieso, also Vergleich von Horizontal- und Vertikalsummen).
Um es anders zu benennen: "Genauigkeit wie angezeigt" ist eine globale Einstellungsmöglichkeit, um sich vom Double-Gleitkommatyp (8 Byte) virtuell zu entfernen (in Excel dargestellt als das noch einmal größere Variant mit 16 Byte).
Gefährlich ist höchstens die Verwendung einer Tabelle in einem anderen Kalkulationsprogramm, welches diese Funktion nicht kennt. Und zwar deshalb gefährlich, weil man das ganze Modell anpassen müsste.
Benötigt man zwischendurch dann doch mal eine %-, Zins-, Steuer- oder sonstige Faktoren-Berechnung, kann man deren Genauigkeit in der Berechnung selbst gestalten, um dann bei der Ausgabe wieder einen gerundeten Betrag zu erhalten. Wer ein wenig geübt ist, kann solche Berechnungen dann skaliert mit eigener Genauigkeit durchführen oder eben eine andere Format-Anzeige nutzen. Zumindest einmal spart man auch hier RUNDEN.
Den für die korrekte Ausgabe von Proportionalschriften benötigten längeren Strich erhält man übrigens über ZEICHEN(150) statt normal ZEICHEN(45). Wie aus meiner Datei (erstes Posting) ersichtlich, verschmilzt er leider unschön (zumindest in manchen Prop.-Schriften) mit seinem Nachbarn, wenn es sich nicht gerade um eine fixbreite Schrift wie Courier New handelt.
Nachlieferung:
_-* #.##0,00;-* #.##0,00 ist das normale Zellformat mit "zellfront-bündigem" Minuszeichen
_-* #.##0,––;-* #.##0,––;–,–– ist das zugehörige bedingte Format zu =REST(A1;1)=0

Anzeige
und noch ne Korrektur
26.04.2015 08:56:57
Matthias
Hi Luc
Ja, diesen Format-String kenne ich auch und benutze ihn sogar beim Summieren von Produktionsmengen.
Ist halt optisch dadurch "aufgehübscht" ;-)
Allerdings hatt ich vergessen eine Fehlerbehandlung einzupflegen.
Die muss zwingend mit rein.
Sei es On Error Resume Next oder On Error Goto → Sprungmarke
Denn beim Verschieben von Zellen kommt es sonst zum Crash
Also mit Deinem zusätzl. Vorschlag dann so:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Count = 1 And IsNumeric(Target) Then
Select Case Target / Int(Target)
Case Is = 1
Target.NumberFormat = "0.-?"
Case Is  1
Target.NumberFormat = "0.00"
End Select
End If
End Sub
schö. Rest-WE
Gruß Matthias

Anzeige
Na, dann wieder abwarten! Dito! ;-) Gruß owT
26.04.2015 14:54:54
Luc:-?
:-?

Grüße von St.Nimmerlein...! :-| owT
01.05.2015 13:57:51
St.Nimmerlein...!
:-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige