ich will eine Zelle in Excel, die Zahlen enthaelt, so formatieren,
dass sie immer alle Nachkommastellen anzeigt, dass sie ein
Tausender-Trennzeichen hat und im Falle von keinen Nachkommastellen
aber kein Komma anzeigt. Dabei bin ich auf das folgende Format
gestossen:
#.##0,########
Dieses Format hat leider nur den Nachteil, dass das Komma auch
angezeigt wird wenn die Zahl keine Nachkommastellen enthaelt.
Hat jemand eine Idee wie man das noch unterbinden kann?
Vielen Dank im Voraus
Dirk
"Dirk Flakowski" schrieb:
da fällt mir nur eine Möglichlkeit zusammen mit einer Ereignisprozedur ein.
Speicher folgende Prozedur im Codemodul des Tabellenbattes
welches überprüft werden soll:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngCell As Range
For Each rngCell In Target
With rngCell
If IsNumeric(.Value) Then
.NumberFormat = IIf(.Value = Int(.Value), _
"General", "#,##0.########")
End If
End With
Next rngCell
End Sub
Bei jeder Änderung auf dem Tabellenblatt wird überprüft, ob die
geänderte Zelle einen Ganzzahl-Wert enthält und dementsprechend
das Zahlenformat eingestellt.
--
Mit freundlichen Grüssen
Melanie Breden
- Microsoft MVP für Excel -
http://excel.codebooks.de (Das Excel-VBA Codebook)
#Excel-Auftragsprogrammierung#
vielen Dank fuer die schnelle Antwort, doch leider brauche ich das
wirklich als Formatierung, da es sich um ein Workbook mit tausenden
von Zellen handelt von denen einige hundert so formatiert werden
muessen. Ein Filtern im Code dieser Zellen ist dann aber praktisch
unmoeglich.
Gibt es keine Loesung ueber das Format alleine?
Vielen Dank im Voraus
Dirk
On Wed, 11 Feb 2004 15:50:00 +0100, "Melanie Breden"
<Melanie.Br...@mvps.org> wrote:
>Hallo Dirk,
"Dirk Flakowski" schrieb:
> vielen Dank fuer die schnelle Antwort, doch leider brauche ich das
> wirklich als Formatierung, da es sich um ein Workbook mit tausenden
> von Zellen handelt von denen einige hundert so formatiert werden
> muessen. Ein Filtern im Code dieser Zellen ist dann aber praktisch
> unmoeglich.
> Gibt es keine Loesung ueber das Format alleine?
IMHO geht das nicht :-(
Folgender Vorschlag:
Markiere alle Zellen, Spalten/Zeilen, welche überwacht werden
sollen mit gedrückter Strg-Taste und vergib im Namensfeld links
neben der Bearbeitungszeile den Namen 'Zahlenformat'. Beende
die Eingabe des Namens mit der Enter-Taste.
Speicher dazu folgende Prozedur im Codemodul des Tabellenblattes:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngCell As Range
Set Target = Application.Intersect(Target, Range("Zahlenformat"))
If Target Is Nothing Then Exit Sub
For Each rngCell In Target
With rngCell
If IsNumeric(.Value) Then
.NumberFormat = IIf(.Value = Int(.Value), _
"General", "#,##0.########")
End If
End With
Next rngCell
End Sub
Geht es damit?