in Excel-Tabellen gibt es ja die schöne Möglichkeit, "überzählige"
Zeiteinheiten mit Hilfe der eckigen Klammern in die größte angezeigte
Einheit mit einberechnen zu lassen.
Beispielsweise liefert der Wert "1:45:30" (eine Stunde, 45 Minuten, 30
Sekunden):
- mit der Zellformatierung "mm:ss" die Anzeige "45:30", und
- mit der Zellformatierung "[mm]:ss" die Anzeige "105:30".
Inzwischen habe ich bereits herausgefunden, dass in VBA-Formatstrings
der Buchstabe "n" (statt "m") für die Minuten verwendet werden muss.
Allerdings fehlt mir noch die Syntax für die eckigen Klammern, und die
Hilfe schweigt sich scheinbar darüber aus. "[nn]:ss" funktioniert
leider nicht.
Muss ich da selbst rumcodieren, oder bietet die Format-Funktion von
VBA ebenfalls die Möglichkeit, die Umrechnung automatisch vorzunehmen?
Vielen Dank für jeden Hinweis,
Valerian
Die VBA-Format-Funktion kann es AFAIK nicht. Aber Du kannst ja die
Tabellen-Funktion benutzen:
WorksheetFunction.Text(Time(), "[m]:ss")
Peter
Am Mon, 31 Mar 2008 09:32:44 -0700 (PDT) schrieb Valerian:
> Beispielsweise liefert der Wert "1:45:30" (eine Stunde, 45 Minuten, 30
> Sekunden):
> - mit der Zellformatierung "mm:ss" die Anzeige "45:30", und
> - mit der Zellformatierung "[mm]:ss" die Anzeige "105:30".
probiers mal so:
Selection.NumberFormat = "[mm]:ss"
Mit freundlichen Grüssen
Claus Busch
--
Win XP Prof SP2 / Vista Ultimate
Office 2003 SP2 / 2007 Ultimate
> probiers mal so:
> Selection.NumberFormat = "[mm]:ss"
Das würde voraussetzen, dass ich die Zeitangabe vorher in ein
Arbeitsblatt kopiere und dann als Text wieder auslese. (Da es sich nur
um eine volatile Eingabe in einem UserForm handelt, ist sie nicht
automatisch in einer Zelle gespeichert.)
Peter Schleifs Tipp (WorksheetFunction.Text(Time(), "[m]:ss"))
funktioniert allerdings bereits wunderbar.
Vielen herzlichen Dank an Euch beide.
Valerian