Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Benutzerdefiniertes Zeitformat für VBA-Funktion Format

39 views
Skip to first unread message

Valerian

unread,
Mar 31, 2008, 12:32:44 PM3/31/08
to
Hallo allerseits,

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

Peter Schleif

unread,
Mar 31, 2008, 12:44:08 PM3/31/08
to
Valerian schrieb am 31.03.2008 18:32:
>
> Muss ich da selbst rumcodieren, oder bietet die Format-Funktion von
> VBA ebenfalls die Möglichkeit, die Umrechnung automatisch vorzunehmen?

Die VBA-Format-Funktion kann es AFAIK nicht. Aber Du kannst ja die
Tabellen-Funktion benutzen:

WorksheetFunction.Text(Time(), "[m]:ss")

Peter

Claus Busch

unread,
Mar 31, 2008, 12:39:13 PM3/31/08
to
Hallo Valerian,

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

Valerian

unread,
Mar 31, 2008, 1:03:26 PM3/31/08
to
On 31 Mrz., 18:39, Claus Busch <claus_bu...@t-online.de> wrote:

> 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

0 new messages