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

Forumthread: Wochentagname aus Datum ermitteln

Wochentagname aus Datum ermitteln
30.11.2012 18:52:41
Jörg
Hallo,
ich habe folgendes Problem:
Private Sub NmonatErzeugen_Click()
Dim d As Date
Dim AnzTageMonat As Integer, y As Integer, m As Integer
Dim nameErsterTagMonat As String
d = UserForm.TextBox1
y = Year(d)
m = Month(d)
AnzTageMonat = Day(DateSerial(y, m + 1, 1) - 1)
nameErsterTagMonat = WeekdayName(Weekday(d))
End Sub

Ich würde gerne aus dem Datum d den Namen des Tages in Kurzschreibweise (Mo,Di,Mi,...) ermitteln.
d wird wie folgt in die TextBox1 eingegeben: 01.07.2012
Leider stimmt der Name des Tages nicht!
Über Hilfe würde ich mich sehr freuen - da ich nicht mehr weiterkomme...
Vielen Dank für die Hilfe im Voraus!!!
Viele Grüße,
Jörg

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Wochentagname aus Datum ermitteln
30.11.2012 19:10:06
Matthias
Hallo Jörg
Option Explicit
Private Sub CommandButton1_Click()
Dim d$
If IsDate(UserForm1.TextBox1) Then
d = CDate(UserForm1.TextBox1)
MsgBox Format(d, "DDD")
End If
End Sub

Userbild
Levelangabe richtig ?
Gruß Matthias

Anzeige
AW: Wochentagname aus Datum ermitteln
30.11.2012 19:13:34
{Boris}
Hi Matthias,
Umwandlung nicht nötig ;-)
MsgBox Format(Me.TextBox1, "DDD")
VG, Boris

Nee, nee !
30.11.2012 19:24:50
Matthias
Hallo
So einfach gehts nicht ;-)
Teste mal mit 30.11.2012 -> Freitag = ok
und nun die Falscheingabe 31.11.2012 ...
Auch Karins Vorschlag erzeugt so einen Fehler.
Gruß Matthias

Anzeige
Hab ich auch nicht geschrieben...
30.11.2012 19:27:30
{Boris}
Hi Matthias,
...ich sprach von Umwandlung und nicht von Fehlerbehandlung ;-))
If IsDate(Me.TextBox1) Then
MsgBox Format(Me.TextBox1, "DDD")
End If
reicht auch.
VG, Boris

ok 1:1 für Dich ;-) kwT
30.11.2012 19:29:39
Matthias

AW: Nee, nee !
30.11.2012 21:01:44
Beverly
Hi Matthias,
da es den 31.11. nicht gibt, wird natürlich etwas falsches ausgegeben. Deshalb musst du vorher eine Fehlerbehandlung durchführen, bevor du die Zahl an die Variable übergibst.


Anzeige
AW: Nee, nee !
02.12.2012 18:14:03
Jörg
Vielen, Vielen Dank!!
Mit eurer Hilfe habe ich es hinbekommen.
Nochmals ein Dankeschön!
Viele Grüße,
Jörg

AW: Wochentagname aus Datum ermitteln
30.11.2012 19:13:31
Beverly
Hi Jörg,
WeekdayName(Weekday(d, 2))


Anzeige
Das ist aber von hinten durch die Brust etc ;-) oT
30.11.2012 19:14:45
hinten
VG, Boris

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Wochentagname aus Datum ermitteln


Schritt-für-Schritt-Anleitung

Um den Wochentagname aus einem Datum in Excel VBA zu ermitteln, kannst Du folgende Schritte befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein UserForm hinzu: Klicke im Projekt-Explorer mit der rechten Maustaste auf dein Projekt und wähle "Einfügen" > "UserForm".

  3. Erstelle ein Textfeld und einen Button: Füge ein Textfeld (TextBox1) und einen Button (CommandButton1) zu Deinem UserForm hinzu.

  4. Füge den folgenden Code hinzu:

    Private Sub CommandButton1_Click()
       Dim d As Date
       If IsDate(TextBox1.Value) Then
           d = CDate(TextBox1.Value)
           MsgBox Format(d, "DDD") ' Gibt den Wochentag in Kurzform aus
       Else
           MsgBox "Bitte ein gültiges Datum eingeben!"
       End If
    End Sub
  5. Starte das UserForm: Klicke auf "F5", um das UserForm auszuführen. Gib ein Datum im Format TT.MM.JJJJ in das Textfeld ein und klicke auf den Button.


Häufige Fehler und Lösungen

  • Fehler: Ungültiges Datum
    Wenn Du ein ungültiges Datum eingibst (z. B. 31.11.2012), wird eine Fehlermeldung angezeigt. Stelle sicher, dass das Datum korrekt eingegeben wird.

  • Problem mit der Formatierung
    Wenn der Wochentag nicht richtig angezeigt wird, stelle sicher, dass die Formatierung in der MsgBox korrekt ist. Die Verwendung von "DDD" gibt den Wochentag in Kurzform (Mo, Di, Mi) zurück.


Alternative Methoden

Es gibt verschiedene Möglichkeiten, den Wochentag aus einem Datum zu ermitteln:

  1. Direkte Verwendung der WeekdayName Funktion:
    Du kannst WeekdayName(Weekday(d, 2)) verwenden, um den Wochentag als Text zu erhalten. Der Parameter 2 sorgt dafür, dass die Woche am Montag beginnt.

    MsgBox WeekdayName(Weekday(d, 2)) ' Gibt den Wochentag zurück
  2. Excel-Funktion in Zellen verwenden:
    Du kannst auch die Excel-Funktion TEXT verwenden, um den Wochentag in einer Zelle anzuzeigen:

    =TEXT(A1, "DDD") ' A1 enthält das Datum

Praktische Beispiele

Hier sind einige Beispiele, um den Wochentag aus einem Datum zu ermitteln:

  • Beispiel 1: Wenn Du in TextBox1 das Datum 01.07.2012 eingibst, zeigt die MsgBox So an, da der 1. Juli 2012 ein Sonntag ist.

  • Beispiel 2: Wenn Du 30.11.2021 eingibst, erhältst Du Di, da der 30. November 2021 ein Dienstag ist.


Tipps für Profis

  • Optimierung der Eingabe: Du kannst die Eingabe in der TextBox mit einer Eingabemaske verbessern, um sicherzustellen, dass das Datum im richtigen Format eingegeben wird.

  • Erweiterte Fehlerbehandlung: Implementiere eine umfassendere Fehlerbehandlung, um verschiedene Eingabefehler zu berücksichtigen, z.B. durch die Verwendung von On Error GoTo.

  • Wochentag als Zahl: Wenn Du den Wochentag als Zahl (1 für Montag bis 7 für Sonntag) benötigst, kannst Du Weekday(d, 2) verwenden.


FAQ: Häufige Fragen

1. Wie kann ich den Wochentag aus einem Datum in Access ermitteln?
In Access kannst Du die WeekdayName-Funktion in einer Abfrage verwenden, um den Wochentag aus einem Datum zu ermitteln.

2. Was passiert, wenn ich ein ungültiges Datum eingebe?
Wenn Du ein ungültiges Datum eingibst, wird eine Fehlermeldung angezeigt. Es ist wichtig, eine Fehlerüberprüfung durchzuführen, bevor Du das Datum verwendest.

3. Kann ich den Wochentag in einer anderen Sprache anzeigen?
Ja, Du kannst die Sprache der Wochentagsnamen ändern, indem Du die Regionaleinstellungen in den Excel-Optionen anpasst.

4. Wie konvertiere ich ein Datum in einen Wochentag in Excel?
Verwende die Funktion TEXT, um ein Datum in einen Wochentag umzuwandeln: =TEXT(A1, "DDD"), wobei A1 die Zelle mit dem Datum ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige