Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datum Formattierung Kalenderwoche/Tag

Forumthread: Datum Formattierung Kalenderwoche/Tag

Datum Formattierung Kalenderwoche/Tag
06.12.2016 16:11:42
Christian
Hallo,
aus Gründen der Übersichtlichkeit ist in einer Terminverfolgungsmatrix das anzuzeigende Format vorgegeben (KWXX/D) also z. B. KW12/5 für Freitag der KW12 (nach ISO 8601). Da übergeordnete Termine als Maximum berechnet werden sollen ist es erforderlich, dass das Datum hinterlegt ist.
Ist es möglich - ohne Hilfsspalten - ein Datum in ein Feld einzutragen und dieses im gewünschten Format anzuzeigen? Im Stile von Benutzerdefiniertem Format "TT.MM" oder bedingter Formattierung.
Danke für die Hilfe!
Gruß,
Christian
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum Formattierung Kalenderwoche/Tag
06.12.2016 16:22:06
UweD
Nein,
entweder VBA...
oder Hilfsspalte

Tabelle1
 CD
219.02.2016KW07/5

wobei du die Eingabespalte für das Datum ganz schmol machen kannst.

Tabelle1
 CD
2KW07/5

verwendete Formeln
Zelle Formel Bereich N/A
D2=TEXT(KALENDERWOCHE(C2;21);"KW00")&"/" &WOCHENTAG(C2;2)  
http://excel-inn.de/dateien/vba_beispiele/tabellenanzeige_in_html_addin.zip
http://Hajo-Excel.de/tools.htm
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 21.10 einschl. 64 Bit


LG UweD
Anzeige
AW: Datum Formattierung Kalenderwoche/Tag
06.12.2016 16:35:42
UweD
per VBA
- Rechtsclick auf den Tabellenblattreiter
- Code anzeigen
- Diesen Code dort reinkopieren
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Fehler
    If Not Intersect(Range("C:C"), Target) Is Nothing Then
        If Target.Count > 1 Then
            MsgBox "bitte einzeln bearbeiten"
        Else
            If Not IsDate(Target) Then
                MsgBox "kein Datum"
            Else
                With Application
                    .EnableEvents = False
                    Target = "KW" & Format(.WeekNum(Target, 21), "00") _
                        & "/" & .Weekday(Target, 2)
                End With
            End If
        End If
    End If
    '*** Fehlerbehandlung 
    Err.Clear
Fehler:
    Application.EnableEvents = True
    If Err.Number <> 0 Then MsgBox "Fehler: " & _
        Err.Number & vbLf & Err.Description: Err.Clear
End Sub
Hier mal Eingaben in Spalte C überwacht
LG UweD
Anzeige
AW: Datum Formattierung Kalenderwoche/Tag
07.12.2016 08:34:12
Christian
Danke Uwe,
Ok, hatte ich so auch vermutet nach bisheriger Recherche. Schade.
Ist leider nicht praktikabel mit Hilfsspalten. Wird von etlichen Nutzern gefüllt und hat über 30 Spalten, die dann gedoppelt würden. Kann den Nutzern nicht zumuten zum Eintragen, die schmalen bzw. ausgeblendeten Spalten zu nutzen.
Das Makro löscht die Information zum Datum, dadurch lässt sich der späteste Termin nicht mehr sicher ermitteln. Eventuell werde ich was Ähnliches zusammen basteln mit einer hinterlegten, unsichtbaren Tabelle, in der das Datum gespeichert wird. Ist aber auch Kanonen auf Spatzen :(
Gruß,
Christian
Anzeige
AW: Datum Formattierung Kalenderwoche/Tag
07.12.2016 10:04:59
UweD
Hallo
du könntest den Eingabewert als Kommentar in die Zelle einfügen...
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Fehler
    If Not Intersect(Range("C:C"), Target) Is Nothing Then
        If Target.Count > 1 Then
            MsgBox "bitte einzeln bearbeiten"
        Else
            If Not IsDate(Target) Then
                MsgBox "kein Datum"
            Else
                With Application
                    'Merken in Kommentar 
                    Target.ClearComments
                    Target.AddComment
                    Target.Comment.Text Text:=Target.Text

                    'umwandeln in KW 
                    .EnableEvents = False
                    Target = "KW" & Format(.WeekNum(Target, 21), "00") _
                        & "/" & .Weekday(Target, 2)
                End With
            End If
        End If
    End If
    Err.Clear
Fehler:
    Application.EnableEvents = True
    If Err.Number <> 0 Then MsgBox "Fehler: " & _
        Err.Number & vbLf & Err.Description: Err.Clear
End Sub


LG UweD
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Datum Formatierung für Kalenderwoche und Tag in Excel


Schritt-für-Schritt-Anleitung

  1. Eingabefeld erstellen: Erstelle ein Eingabefeld für das Datum in einer Spalte, z.B. Spalte C.

  2. VBA-Editor öffnen: Rechtsklicke auf den Tabellenblattreiter und wähle „Code anzeigen“.

  3. Code einfügen: Kopiere den folgenden VBA-Code in das Fenster:

    Private Sub Worksheet_Change(ByVal Target As Range)
        On Error GoTo Fehler
        If Not Intersect(Range("C:C"), Target) Is Nothing Then
            If Target.Count > 1 Then
                MsgBox "Bitte einzeln bearbeiten"
            Else
                If Not IsDate(Target) Then
                    MsgBox "Kein Datum"
                Else
                    With Application
                        .EnableEvents = False
                        Target = "KW" & Format(.WeekNum(Target, 21), "00") & "/" & .Weekday(Target, 2)
                    End With
                End If
            End If
        End If
    Fehler:
        Application.EnableEvents = True
        If Err.Number <> 0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear
    End Sub
  4. Speichern: Schließe den VBA-Editor und speichere die Datei als „Excel-Arbeitsmappe mit Makros“ (*.xlsm).

  5. Datum eingeben: Gib ein Datum in die Spalte C ein und beobachte, wie es automatisch in das Format „KWXX/D“ umgewandelt wird.


Häufige Fehler und Lösungen

  • Fehler: „Kein Datum“: Stelle sicher, dass du ein gültiges Datum eingibst. Excel erkennt nur Datumsformate.
  • Mehrere Zellen bearbeitet: Wenn du mehrere Zellen gleichzeitig änderst, erhältst du eine Nachricht. Bearbeite die Zellen einzeln.
  • Makro funktioniert nicht: Überprüfe, ob Makros in deinen Excel-Einstellungen aktiviert sind.

Alternative Methoden

  1. Hilfsspalten verwenden: Du kannst eine Hilfsspalte einfügen, in der du das Datum eingibst und mit einer Formel wie =TEXT(KALENDERWOCHE(C2;21);"KW00")&"/"&WOCHENTAG(C2;2) die gewünschte Formatierung erhältst.
  2. Bedingte Formatierung: Nutze die bedingte Formatierung, um die Anzeige der Kalenderwoche visuell hervorzuheben, ohne das Format zu ändern.
  3. Kommentare: Füge den Eingabewert als Kommentar in die Zelle ein, um das ursprüngliche Datum zu speichern, während du die Kalenderwoche anzeigst.

Praktische Beispiele

  • Wenn du in Zelle C2 das Datum „19.02.2016“ eingibst, wird in derselben Zelle „KW07/5“ angezeigt.
  • Bei der Eingabe von „01.03.2023“ wird automatisch „KW09/3“ angezeigt, was den Mittwoch der neunten Kalenderwoche darstellt.

Tipps für Profis

  • Überlege, die Excel-Formatierung für Kalenderwochen zu optimieren, indem du zusätzliche Formate hinzufügst, die auf spezifische Anforderungen deines Projekts abgestimmt sind.
  • Nutze VBA-Fehlerbehandlung, um sicherzustellen, dass dein Makro auch bei unerwarteten Eingaben stabil bleibt.
  • Speichere regelmäßig und teste dein Makro in einer Kopie deiner Arbeitsmappe, um Datenverlust zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich das Datum in ein anderes Format umwandeln? Du kannst die Formatierung des Datums mit der Funktion TEXT anpassen, um verschiedene Darstellungen zu erhalten.

2. Funktioniert das auch in Excel Online? Leider unterstützt Excel Online keine VBA-Makros. Nutze stattdessen die Hilfsspalten-Methode für die Formatierung der Kalenderwoche.

3. Was ist der Unterschied zwischen KALENDERWOCHE und WEEKNUM? KALENDERWOCHE ist die deutsche Funktion, während WEEKNUM die englische Version ist. Beide erfüllen denselben Zweck, aber die Syntax kann unterschiedlich sein.

4. Kann ich die Kalenderwoche auch für ein ganzes Jahr formatieren? Ja, du kannst die Excel Formatierung für Kalenderwochen anpassen, um verschiedene Jahre zu berücksichtigen, indem du die entsprechende Jahreszahl in deine Formeln einfügst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige