Discussion:
Benutzerdef. Format: Datum >> Quartal/Jahr
(zu alt für eine Antwort)
a***@informas.ch
2006-05-08 18:33:40 UTC
Permalink
Hallo,

Ich hoffe sehr, dass jemand unter Euch mir bei dem folgenden Problem
helfen kann. Schon jetzt vielen Dank für jede Idee.

Gibt es eine Möglichkeit, das in eine Zelle eingegebene Datum in der Form
"Q2 2006" oder ähnlich darzustellen?
Herbert Taferner
2006-05-08 20:12:07 UTC
Permalink
Hallo,

als erstes einmal ohne zu belehren,
hier sind Postings im NUR TEXT Format üblich
weiters ist es hier üblich unter einem Realnamen zu Posten

dazu ließ dir einmal dies durch
http://www.jumper.ch/netikette_crossposting.htm

zu deinem Problem
z. B. Datum in A1

="Q"&AUFRUNDEN(MONAT(A1)/3;0)&" "&JAHR(A1)

mfg Herbert
Alfred Stadler
2006-05-08 20:48:53 UTC
Permalink
Vielen Dank, Herbert, werd's mir merken.

Komme auf Deinen Tipp zurück: eigentlich suche ich eher nach "undefined
function" des Benutzerdef. Formats, denn die Anzeigeänderung muss in der
Eingabezelle erfolgen. Ich hoffe noch immer auf eine Möglichkeit, ein
Pendant zu "TT.MM.JJ" oder so zu finden.
Thomas Ramel
2006-05-09 05:12:12 UTC
Permalink
Grüezi Alfred

Alfred Stadler schrieb am 08.05.2006
Post by Alfred Stadler
Komme auf Deinen Tipp zurück: eigentlich suche ich eher nach "undefined
function" des Benutzerdef. Formats, denn die Anzeigeänderung muss in der
Eingabezelle erfolgen. Ich hoffe noch immer auf eine Möglichkeit, ein
Pendant zu "TT.MM.JJ" oder so zu finden.
Das ist so leider nicht möglich; Du musst mit einer Hilfsspalte arbeiten.

Oder Du machst es per VBA und einer Ereignis-Prozedur. Die folgende wandelt
ein in einem definierten Bereich eingetragenes Datum in die entsprechende
Quartalsausgabe um (viel Kommentar ist auch dabei):

Private Sub Worksheet_Change(ByVal Target As Range)
'Target wird auf den sich überschneidenden Bereich gesetzt, um bei
'Mehrfachmarkierungen die ausserhalb des eingeschränkten Bereiches
'liegenden Zellen nicht ebenfalls zu verändern

'Hier den Bereich anpassen
Set Target = Application.Intersect(Target, Range("A1:A10"))

'Wenn nicht innerhalb des Bereiches wird die Prozedur verlassen
If Target Is Nothing Then Exit Sub

'Errorhandling aktivieren, um im Falle eines Fehlers die Ereignisse
'am Ende wieder zu aktivieren
On Error GoTo ErrorHandler

'Ereignisse ausschalten, um das Change-Ereignis nicht erneut auszulösen
Application.EnableEvents = False

'Eine Range-Variable deklarieren
Dim rngZelle As Range

'jede Zelle innerhalb des Target-Bereiches durchlaufen
For Each rngZelle In Target

If IsDate(rngZelle.Value) Then

With rngZelle
.Value = "Q" & (Month(.Value) \ 4) + 1 & Format(.Value, " YYYY")
End With
End If
Next rngZelle
ErrorHandler:
Application.EnableEvents = True 'Ereignisse wieder einschalten
End Sub





Mit freundlichen Grüssen
Thomas Ramel (@work)
--
- MVP für Microsoft-Excel -
[Win XP Pro SP-2 / xl2003 SP-1]
Microsoft Excel - Die ExpertenTipps:
(http://tinyurl.com/9ov3l und http://tinyurl.com/cmned)
Hubert Daubmeier
2006-05-09 07:38:24 UTC
Permalink
Post by Alfred Stadler
function" des Benutzerdef. Formats, denn die Anzeigeänderung muss in der
Eingabezelle erfolgen. Ich hoffe noch immer auf eine Möglichkeit, ein
Pendant zu "TT.MM.JJ" oder so zu finden.
Eine Idee: in einer Hilfspalte könnte ich per Monat()-Funktion den Monat
rausfinden. Sind ja nur 12 ;-)
Per Wahl() liese sich daraus das Quartal bilden.
Tja und noch das Jahr dazu.

Ergäbe dann etwa

=wahl(monat(datumszelle;"Q1", "Q1", "Q1", "Q2", "Q2", "Q2", "Q3", "Q3",
"Q3", "Q4", "Q4", "Q4") & jahr(datumszelle)
(aus dem Kopf nicht ausprobiert)
--
Viele Grüße
Hubert Daubmeier
Alfred Stadler
2006-05-09 10:16:43 UTC
Permalink
Vielen Dank für die Unterstützung. Werd' mein Problem also mit einer
Hilfsspalte lösen.

Loading...