Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Wenn ein neuer Monat beginnt, dann...

Forumthread: Wenn ein neuer Monat beginnt, dann...

Wenn ein neuer Monat beginnt, dann...
23.02.2021 19:36:38
Marcel
Hallo,
ich habe eine Liste und in Spalte C wird per Makro ein Datum eingetragen.
Es soll gleichzeitig das letzte Datum in Spalte C abgefragt werden und wenn ein neuer Monat begonnen hat, 3 Zeilen weiter das neue Datum eingetragen werden.
Wenn ich ein richtiges Datum in die Formel schreibe funktioniert das auch, aber so nicht:
letzte = Application.Max(.Cells(Rows.Count, 3).End(xlUp))
letzte2 = Application.Max(.Cells(Rows.Count, 3).End(xlUp).Row + 3)
If Month(Date) > Month(letzte) Then
.Cells(letzte2, 3) = Format(Date, "MMMM")

so klappt es:
If Month(Date) > Month("23.01.2021") Then
.Cells(letzte2, 3) = Format(Date, "MMMM")
Danke für eure Antworten.
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn ein neuer Monat beginnt, dann...
23.02.2021 19:53:15
Regina
Hi,
als was ist "letzte" denn deklariert? Wa steht zum Zeitpunkt des Vergleichs in letzte?
Das Ganze mit Max vestehe ich nicht. Hier wird ja nur der Wert der letzten Zelle in C ausgewertet, wozu dann Max?
Gruß Regina
AW: Wenn ein neuer Monat beginnt, dann...
23.02.2021 21:26:55
Marcel
Hallo Regina,
Dim letzte As Date
zum Zeitpunkt des Vergleichs steht in letzte ein Datum z.B. 23.01.2021.
ich habe den Code aus einer anderen abfrage wo Max abgefragt wird. Der Code kann dann auch sein:
letzte = Worksheets("Aufträge " & Year(Date)).Cells(Rows.Count, 3).End(xlUp)
letzte2 = Worksheets("Aufträge " & Year(Date)).Cells(Rows.Count, 3).End(xlUp).Row + 3

Anzeige
AW: Wenn ein neuer Monat beginnt, dann...
23.02.2021 21:39:01
Werner
Hallo,
meinst du so?
Dim loLetzte As Long
With Worksheets("Tabelle1")
loLetzte = .Cells(.Rows.Count, "C").End(xlUp).Row
If Month(Date) > Month(Cells(loLetzte, "C")) Then
Cells(loLetzte, "C").Offset(3) = Format(Date, "MMMM")
End If
End With
Gruß Werner
Anzeige
AW: Wenn ein neuer Monat beginnt, dann...
24.02.2021 11:32:20
Marcel
Hallo Werner,
erstmal vielen Danke und es funktioniert super. Danke.
Ich habe noch eine Frage. Wenn ich jetzt den ausgegebenen Monat z.B. März in Bold=True und Größe 12 angezeigt haben möchte, wo schreibe ich das in den Code?
Cells(letzte, 3).Offset(3) = Format(Date, "MMMM", Bold=True?, Size = 12? )
Habe es schon versucht, aber irgendwie bekomme ich es nicht hin.
Anzeige
AW: Wenn ein neuer Monat beginnt, dann...
24.02.2021 12:31:56
Werner
Hallo,
an meinem Code hat auch noch etwas nicht gepasst. Bei manchen Cells-Objekten hatte ich den Punkt davor vergessen.
Dim loLetzte As Long
With Worksheets("Tabelle1")
loLetzte = .Cells(.Rows.Count, "C").End(xlUp).Row
If Month(Date) > Month(.Cells(loLetzte, "C")) Then
.Cells(loLetzte, "C").Offset(3) = Format(Date, "MMMM")
.Cells(loLetzte, "C").Offset(3).Font.Bold = True
.Cells(loLetzte, "C").Offset(3).Font.Size = 12
End If
End With
Gruß Werner
Anzeige
AW: Wenn ein neuer Monat beginnt, dann...
24.02.2021 12:44:42
Marcel
Hallo Werner,
nochmals vielen Dank.
Alles funktioniert wie ich es mir vorstelle. Danke
Gruß Marcel
Gerne u. Danke für die Rückmeldung. o.w.T.
24.02.2021 12:49:21
Werner
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Automatisches Datumseintragen beim Monatswechsel in Excel


Schritt-für-Schritt-Anleitung

Um ein Datum automatisch in Excel einzutragen, wenn ein neuer Monat beginnt, kannst du den folgenden VBA-Code verwenden. Dieser Code fragt das letzte Datum in Spalte C ab und trägt, wenn ein neuer Monat festgestellt wird, das aktuelle Datum ein:

  1. Öffne die Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Wähle das entsprechende Arbeitsblatt aus.
  3. Füge den folgenden Code in das Codefenster ein:
Dim loLetzte As Long
With Worksheets("Tabelle1")
    loLetzte = .Cells(.Rows.Count, "C").End(xlUp).Row
    If Month(Date) > Month(.Cells(loLetzte, "C")) Then
        .Cells(loLetzte, "C").Offset(3) = Format(Date, "MMMM")
        .Cells(loLetzte, "C").Offset(3).Font.Bold = True
        .Cells(loLetzte, "C").Offset(3).Font.Size = 12
    End If
End With
  1. Schließe den VBA-Editor und teste den Code, indem du das Datum in Spalte C änderst.

Häufige Fehler und Lösungen

  • Fehler: "Typenkonflikt"

    • Überprüfe, ob die Zellen in Spalte C tatsächlich Datumswerte enthalten. Leere oder falsch formatierte Zellen können diesen Fehler verursachen.
  • Fehler: "Objektvariable oder mit Blockvariable nicht festgelegt"

    • Stelle sicher, dass der Arbeitsblattname ("Tabelle1") korrekt ist. Ändere ihn gegebenenfalls in den Namen deines Arbeitsblatts.

Alternative Methoden

Falls du keine VBA-Makros verwenden möchtest, kannst du auch bedingte Formatierungen und Formeln nutzen, um den Monat anzuzeigen. Eine Möglichkeit wäre, die Formel =WENN(MONAT(A1)>MONAT(A2);HEUTE();"") in eine Zelle einzufügen, um die Monatsänderung zu prüfen.


Praktische Beispiele

Hier sind einige Beispiele für die Anwendung des Codes:

  1. Monatswechsel in einem Projektmanagement-Tool

    • Nutze den Code, um automatisch den aktuellen Monat in eine Aufgabenliste einzutragen, sobald eine neue Woche oder ein neuer Monat beginnt.
  2. Monatsberichte

    • Trage automatisch den Monat in Berichte ein, die regelmäßig aktualisiert werden müssen.

Tipps für Profis

  • Um die Leistung zu optimieren, kannst du sicherstellen, dass der Code nur ausgeführt wird, wenn es tatsächlich Änderungen in Spalte C gibt. Füge dazu eine Überprüfung am Anfang des Codes hinzu.
  • Experimentiere mit der Formatierung von Zellen, um visuelle Hinweise auf Monatswechsel zu geben, wie z.B. unterschiedliche Farben oder Schriftarten.

FAQ: Häufige Fragen

1. Frage Wie kann ich den Code anpassen, um ein bestimmtes Datum anstelle des aktuellen Datums einzutragen?

Antwort Ändere die Zeile .Cells(loLetzte, "C").Offset(3) = Format(Date, "MMMM") in .Cells(loLetzte, "C").Offset(3) = "Dein Datum".

2. Frage Kann ich den Code auch in Excel Online verwenden?

Antwort Leider unterstützt Excel Online keine VBA-Makros. Du musst die Desktop-Version von Excel verwenden, um diese Funktionalität nutzen zu können.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige