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

Forumthread: Aktuelles Jahr

Aktuelles Jahr
BerndR
Hallo zusammen,
wie kann ich in diesem Makro den Ausdruck d Gruß BerndR
Sub Datumsprüfung()
Dim d As Date
On Error GoTo fehler
Beginn:
d = InputBox("Geben Sie das Lieferdatum ein!", _
"Datum eingeben")
If IsDate(d) And d 

Anzeige

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

Betreff
Benutzer
Anzeige
AW: Aktuelles Jahr
28.07.2010 17:11:03
Henrik
Hallo Bernd,
aktuelles Datum mit: date()
aktuelles Jahr mit: year(date())
Henrik
so ?
28.07.2010 17:21:04
Matthias
Hallo
Dim d As String
Bin nicht ganz sicher, aber mE liefert eine Inputbox erstmal einen String,
den Du anschließend auf IsDate prüfen kannst.
If IsDate(d) And Year(d) = Year(Date) Then 'ungetestet
Und es muß eine Routine rein zum "Abbrechen" sonst steigt XL mit einem VBA-Fehler aus
Gruß Matthias
Anzeige
AW: so ?
28.07.2010 18:42:17
BerndR
Hallo Matthias,
das Makro läuft mit der Date-Routine. Nur wenn ich eine Zahlenfolge (nicht Datumsformat) eingebe,
wird ON Error GoTo nicht ausgeführt. Auch die Zeile If Not IsDate(d)... wirkt nicht.
Was mache ich falsch?
Sub Datumsprüfung()
Dim d As Date
On Error GoTo fehler
Beginn:
d = InputBox("Geben Sie das Lieferdatum ein!", _
"Datum eingeben")
If Not IsDate(d) Then GoTo fehler
If IsDate(d) And Year(d)  Year(Date) Then
MsgBox "Nur Eingaben im aktuellen Jahr möglich"
GoTo Beginn
End If
d = d + 14
MsgBox "Das Zahlungsziel ist der: " & d
Exit Sub
fehler:
MsgBox "Sie haben kein gültiges Datum eingegeben!"
GoTo Beginn
End Sub

Anzeige
wird ON Error GoTo nicht ausgeführt
28.07.2010 19:12:44
Matthias
Hallo BerndR
Warum versuchst Du es denn nicht einfach mal mit
Dim d AS String
dann klappt auch On Error GoTo fehler
Gruß Matthias
hier mal der komplette Code ...
28.07.2010 19:31:27
Matthias
Hallo
Option Explicit
Sub Datumsprüfung()
Dim d As String
On Error GoTo fehler
Beginn:
d = InputBox("Geben Sie das Lieferdatum ein!", "Datum eingeben")
If StrPtr(d) = 0 Then Exit Sub 'Abbrechen gedrückt
If Not IsDate(d) Then GoTo fehler
'Abfrage ob es ein Datum ist und ob das Jahr das aktuelle Jahr ist
If IsDate(d) And Year(d)  Year(Date) Then
MsgBox "Nur Eingaben im aktuellen Jahr möglich"
GoTo Beginn
End If
d = CDate(d) + 14 'String(d) in ein Datum umwandeln + 14 Tage
MsgBox "Das Zahlungsziel ist der: " & d
Exit Sub
fehler:
MsgBox "(" & d & ") ist kein gültiges Datum !", vbCritical, "Sie haben kein gültiges Datum  _
eingegeben!"
GoTo Beginn
End Sub
Gruß Matthias
Anzeige
AW: hier mal der komplette Code ...
28.07.2010 20:02:05
BerndR
Hallo Matthias,
bin begeistert, läuft einwandfrei.
Nur die MsgBox unter fehler: brauchte etwas Nachhilfe.
Vielen Dank!
Gruß Bernd
AW: wird ON Error GoTo nicht ausgeführt
28.07.2010 19:51:21
BerndR
Hallo Mattias,
mit d AS String bleibt das Ergebnis (Zahlungsziel) unformatiert.
Kann man die Meldung von VBA "Laufzeitfehler 13" Typen unverträglich unterdrücken?
Anzeige
AW: d = CDate(d) + 14
28.07.2010 20:11:39
BerndR
Hallo Matthias,
bin begeistert, läuft einwandfrei.
Nur die MsgBox unter fehler: brauchte etwas Nachhilfe.
Vielen Dank!
Gruß Bernd

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Aktuelles Jahr in Excel und VBA nutzen


Schritt-für-Schritt-Anleitung

Um das aktuelle Jahr in Excel oder VBA zu verwenden, kannst Du verschiedene Methoden nutzen. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. In Excel:

    • Um das aktuelle Jahr in einer Zelle anzuzeigen, verwende die Formel:
      =JAHR(HEUTE())
    • Diese Formel gibt das aktuelle Jahr zurück, z.B. 2023.
  2. In VBA:

    • Du kannst das aktuelle Jahr mit folgendem Code ermitteln:
      Dim aktuellesJahr As Integer
      aktuellesJahr = Year(Date)
      MsgBox "Das aktuelle Jahr ist: " & aktuellesJahr
  3. Eingabe eines Datums:

    • Wenn Du ein Datum eingeben möchtest und überprüfen willst, ob es im aktuellen Jahr liegt, kannst Du folgenden VBA-Code verwenden:
      Dim d As Date
      d = InputBox("Geben Sie das Lieferdatum ein:", "Datum eingeben")
      If Year(d) <> Year(Date) Then
       MsgBox "Nur Eingaben im aktuellen Jahr sind erlaubt."
      End If

Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 13 - Typen unverträglich":

    • Dies kann auftreten, wenn Du versuchst, einen String als Datum zu verwenden. Stelle sicher, dass Du das Datum korrekt konvertierst:
      d = CDate(d)
  • Fehler bei Datumseingabe:

    • Wenn Du ein Datum eingibst, das nicht im richtigen Format ist, wird der Fehler On Error GoTo nicht ausgelöst. Verwende zur Fehlerbehandlung die IsDate-Funktion:
      If Not IsDate(d) Then GoTo fehler

Alternative Methoden

  • Excel-Formeln:

    • Neben der JAHR(HEUTE())-Formel kannst Du auch die Funktion JETZT() verwenden, um das aktuelle Jahr anzuzeigen:
      =JAHR(JETZT())
  • VBA-Alternative:

    • Um das Jahr aus einem bestimmten Datum zu extrahieren, kannst Du die Funktion Year() verwenden:
      Dim meinDatum As Date
      meinDatum = #01/01/2023#
      MsgBox Year(meinDatum) ' Gibt 2023 zurück

Praktische Beispiele

  1. Aktuelles Jahr in eine Zelle einfügen:

    • Um das aktuelle Jahr automatisch in eine Zelle einzufügen, verwende:
      =JAHR(HEUTE())
  2. VBA zur Datumsüberprüfung:

    • Hier ist ein vollständiges Beispiel:
      Sub Datumsprüfung()
       Dim d As String
       d = InputBox("Geben Sie das Lieferdatum ein:", "Datum eingeben")
       If Not IsDate(d) Then
           MsgBox "Ungültiges Datum!"
           Exit Sub
       End If
       If Year(CDate(d)) <> Year(Date) Then
           MsgBox "Nur Eingaben im aktuellen Jahr sind erlaubt."
       Else
           MsgBox "Das eingegebene Datum liegt im aktuellen Jahr."
       End If
      End Sub

Tipps für Profis

  • Nutze die Funktion Jahr() in Kombination mit HEUTE(), um dynamisch das aktuelle Jahr in Berichten oder Kalkulationen anzuzeigen.
  • Verwende VBA zur Automatisierung von Prozessen, die das aktuelle Jahr benötigen, z.B. in Rechnungen oder Jahresberichten.
  • Berücksichtige auch die Möglichkeit, das Jahr in unterschiedlichen Formaten anzuzeigen, z.B. als zweistellige Jahreszahl. Dafür kannst Du die Funktion Text verwenden:
    =TEXT(JAHR(HEUTE()), "00")

FAQ: Häufige Fragen

1. Wie kann ich das aktuelle Jahr automatisch in Excel einfügen?
Verwende die Formel =JAHR(HEUTE()), um das aktuelle Jahr in eine Zelle einzufügen.

2. Wie kann ich in VBA das Jahr aus einem Datum auslesen?
Nutze die Funktion Year(), um das Jahr aus einem Datum zu extrahieren, z.B. Year(Date) für das heutige Jahr.

3. Was kann ich tun, wenn ich beim Eingeben eines Datums einen Fehler erhalte?
Stelle sicher, dass Du die Eingabe mit IsDate() prüfst, um ungültige Datumsformate zu vermeiden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige