Word fügt automatisch Datum aus KW ein?

1 Antwort

Hallo,

sowas kann man per VBA bzw. ein Makro erreichen.

Aktiviere zunächst die Registerkarte Entwicklertools. Wie das geht, zeigt dieses Video:

https://www.youtube.com/watch?v=WzJpzUrZEyQ

Positioniere nun deinen Cursor an der Stelle im Dokument, an der später das KW 23 (07.06.2021 – 11.06.2021) erscheinen soll.

Wechsle nun in die Registerkarte Entwicklertools und füge ein Rich-Text-Inhaltssteuerelement ein.

Bild zum Beitrag

Wähle dieses an und klicke dann in der Registerkarte Entwicklertools auf Eigenschaften. Dort benennst du das Inhaltssteuerelement zwingend im Feld Titel mit KW. Benutze hier bitte keinen anderen Namen, da sonst das Makro nicht richtig funktioniert!

Bild zum Beitrag

Anschließend öffnest du den VBA-Editor mit einem Druck auf Alt + F11 oder Klick auf Visual Basic in der Registerkarte Entwicklertools.

Hier fügst du jetzt über Einfügen Modul ein neues Modul ein. In dieses fügst du nun den folgenden Code ein:

Option Explicit

Public Function FirstDateOfCalWeek(cWeek As Integer, Optional cYear As Variant) As Date

    If IsMissing(cYear) Then cYear = Year(Date)
    FirstDateOfCalWeek = DateSerial(cYear, 1, 4) + cWeek * 7 - 7 - (DateSerial(cYear, 1, 2) Mod 7)
    
End Function

Sub KWEinfuegen()

    Dim strKW, strText As String
    Dim intKW As Integer
    
    
VonVorne:
    strKW = InputBox("Bitte geben Sie eine Kalenderwoche ein!", "Kalenderwoche eingeben")
    If StrPtr(strKW) = 0 Then Exit Sub
    
    Select Case strKW
        Case 1 To 53: intKW = CInt(strKW)
        Case Else
            MsgBox "Bitte geben Sie eine Kalenderwoche von 1 bis 53 ein.", vbExclamation + vbOKOnly, "Fehler"
            GoTo VonVorne
    End Select
    
    strText = "KW " & strKW & " (" & FirstDateOfCalWeek(intKW) & " – " & (FirstDateOfCalWeek(intKW) + 4) & ")"
    
    ActiveDocument.SelectContentControlsByTitle("KW").Item(1).Range.Text = strText
    
End Sub

Den Code für die Funktion FirstDateOfCalWeek habe ich übrigens von dieser Seite.

Speichere danach im VBA-Editor das Makro über Strg + S.

Das Makro aufrufen

Um nun das Makro aufzurufen und das Inhaltssteuerelement mit dem Datum der gewünschten Kalenderwoche zu befüllen drücke Alt + F8 oder wähle in der Registerkarte Entwicklertools den Befehl Makros.

Wähle aus der Liste das Makro KWEinfuegen und klicke auf Ausführen. Dann erscheint eine Eingabemaske in der du gebeten wirst, die gewünschte Kalenderwoche einzutragen. Den Rest errechnet dann Word und fügt den gewünschten Text in das Inhaltssteuerelement ein. Allerdings darfst du niemals das Inhaltssteuerelement aus dem Dokument löschen, sonst gibt's hier eine Fehlermeldung.

Dem Makro eine Tastenkombination zuweisen

Um das Makro schneller aufrufen zu können kannst du ihm eine Tastenkombination zuweisen. Das geht so:

klicke auf Datei Optionen, wähle dann links Menüband anpassen und klicke dann im rechten Bereich unten links bei Tastenkombinationen auf Anpassen...

In dem sich öffnenden Fenster scrollst du links in der Liste Kategorien runter bis Makros und wählst diese an.

Dann wählst du in der rechten Liste Makros das Makro KWEinfuegen.

Positioniere den Cursor jetzt im Feld Neue Tastenkombination und drücke die gewünschte Tastenkombination, z. B. Strg + Ä, die draufhin in diesem Feld erscheint. Gleichzeitig erscheint dabei unter dem linken Kasten Aktuelle Tasten eine Meldung namens Derzeit zugewiesen an.

Wichtig: Falls hinter Derzeit zugewiesen an der Name eines Befehls auftaucht – z. B. würde hier der Name BearbeitenKopieren bei der Tastenkombination Strg + C auftauchen –, ist diese Tastenkombination bereits vergeben. Klicke dann auf keinen Fall auf Zuordnen, denn sonst würdest du eine bereits bestehende Tastenkombination überschreiben, und da wirst du nicht glücklich! Lösche in diesem Fall die eingegebene Tastenkombination im Feld Neue Tastenkombination und gib eine neue ein.

Falls hinter der Meldung Derzeit zugewiesen an aber die Meldung [nicht zugewiesen] auftaucht, ist die eingegebene Tastenkombination noch frei und kann vergeben werden. Klicke in diesem Fall unten links auf Zuordnen, so dass die Tastenkombination links im Feld Aktuelle Tasten auftaucht.

Dann kannst du das Fenster Schließen.

Jetzt kannst du das Makro mit der zugewiesenen Tastenkombination aufrufen.

Ein Befehlsicon zum Aufruf des Makros in der Schnellzugriffsleiste von Word anlegen

Wie man einem Makro eine Befehlsfläche in der Schnellzugriffsleiste zuweist, wird in diesem Video beschrieben:

https://www.youtube.com/watch?v=Q-jkn2U7adI

Das Video ist zwar in Excel erstellt, die Zuweisung eines Makros zu einem Icon in der Schnellzugriffsleiste funktioniert aber in Word ganz genau so.

Eine Rückmeldung wäre nett und melde dich bitte bei Fragen!

Gruß, BerchGerch

Woher ich das weiß:eigene Erfahrung
 - (Computer, Microsoft, Microsoft Word)  - (Computer, Microsoft, Microsoft Word)