Microsoft Office Tutorials and References
In Depth Information
8.7 Profi-Tipps für Zahlenformate
VBA-Makros übernehmen im Zusammenhang mit
Zahlenformaten hauptsächlich die Aufgabe, Spezialformate für
Anwender zu erzeugen, die sich nicht mit Vorlagen oder
kopierten Mappen abmühen möchten. Dreh- und
Angelpunkt fist die Eigenschaft NumberFormat des Range -Objektes:
Zeichen
Alt-Code
Zeichen
Alt-Code
0137
¼
0188
£
0163
½
0189
¥
0165
¾
0190
ActiveCell.NumberFormat = “#,##0.00;-#,##0.00“
©
0169
ø
0248
Achten Sie darauf, dass in der US-Schreibweise 1000er-
Trennzeichen und Dezimaltrennzeichen verlangt
werden, die Ausgabe erfolgt wieder mit Tausenderpunkt
und Komma. Mit dieser Eigenschaft lassen sich schon
ein paar schöne Makros schreiben:
Tabelle 8.12 Zeichencodes für Sonderzeichen
8.7 Profi-Tipps für Zahlenformate
8.7.1
Ein ausführliches Tagesdatum
8.8.1 Spezialzahlenformat
Dieses Makro formatiert alle markierten Zellen mit
einem Zahlenformat, das nur bei Dezimalzahlen zwei
Stellen ausweist. Markieren Sie in der Testtabelle den
Bereich B4:B9.
Um das aktuelle Tagesdatum in einer Tabelle
auszugeben, verwenden Sie die Funktionen JETZT() oder
HEUTE() , die das Systemdatum Ihres Computers an die
Formelzelle liefern. Der Unterschied zwischen den beiden
liegt in der Zeitrechnung, JETZT() berechnet auch
sekundengenau die Uhrzeit, mit jeder Neuberechnung der
Tabelle wird diese aktualisiert. Das Zahlenformat sollte
so ausführlich wie möglich sein, um alle Informationen
der Systemzeit abzudecken:
Sub ZFormat1()
Dim sel As Range
Dim Zelle As Range
Set sel = Application.Selection
For Each Zelle In sel
If Zelle.Value = Int(Zelle.Value) Then
Zelle.NumberFormat = “#,##0;-#,##0“
Else
Zelle.NumberFormat = “#,##0.00;-#,##0.00“
End If
Next Zelle
End Sub
TTTT, TT. MMMM JJJJ hh:mm
Dieses lange Format wirft ein Problem auf: Die Zelle
muss entsprechend vergrößert werden, weil der
Zellinhalt bei Verwendung von Funktionen nicht in die nächs-
te freie Zelle weitergeschrieben wird. Lösen Sie die
Aufgabe mit folgender Formel, die den Datumswert in
Textform setzt und damit das Tagesdatum über die
freien Zellen schreibt:
Listing 8.1 Makro für Spezialzahlenformat
=TEXT(JETZT();“TTTT, TT. MMMM JJJJ hh:mm“)
8.8.2 Zahlenformat übertragen
Das Makro überträgt nur das Zahlenformat der Zelle
(B13) in die Zielzelle (E13).
Geben Sie der Zelle noch eine rechtsbündige
Ausrichtung, und das ausführliche Tagesdatum kann in der
kleinsten Spalte ausgegeben werden.
Sub ZformatÜbertragen()
[B13].Copy
[E13].Select
Selection.PasteSpecial _
Paste:=xlPasteValuesAndNumberFormats, _
Operation:=xlNone, SkipBlanks:=False, _
Transpose:=False
Application.CutCopyMode = False
End Sub
8.8 Die VBA-Ecke
CD-ROM Die Makrobeispiele finden Sie auf der CD
zum Buch unter VBA Zahlenformate.xlsm .
Stellen Sie sicher, dass im Sicherheitscenter ( Optionen
im Datei -Menü) für Makros die Sicherheitsstufe Mittel
eingestellt fist, damit Sie die Makros testen können.
CD-ROM
Listing 8.2 Makro zur Übertragung des Zahlenformates
 
Search JabSto ::




Custom Search