Microsoft Excel

Herbers Excel/VBA-Archiv

Wenn ein neuer Monat beginnt, dann...

Betrifft: Wenn ein neuer Monat beginnt, dann... von: Marcel
Geschrieben am: 23.02.2021 19:36:38

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.

Betrifft: AW: Wenn ein neuer Monat beginnt, dann...
von: Regina Resch-Jansen
Geschrieben am: 23.02.2021 19:53:15

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

Betrifft: AW: Wenn ein neuer Monat beginnt, dann...
von: Marcel
Geschrieben am: 23.02.2021 21:26:55

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


Betrifft: AW: Wenn ein neuer Monat beginnt, dann...
von: Werner
Geschrieben am: 23.02.2021 21:39:01

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

Betrifft: AW: Wenn ein neuer Monat beginnt, dann...
von: Marcel
Geschrieben am: 24.02.2021 11:32:20

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.

Betrifft: AW: Wenn ein neuer Monat beginnt, dann...
von: Werner
Geschrieben am: 24.02.2021 12:31:56

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

Betrifft: AW: Wenn ein neuer Monat beginnt, dann...
von: Marcel
Geschrieben am: 24.02.2021 12:44:42

Hallo Werner,
nochmals vielen Dank.
Alles funktioniert wie ich es mir vorstelle. Danke

Gruß Marcel

Betrifft: Gerne u. Danke für die Rückmeldung. o.w.T.
von: Werner
Geschrieben am: 24.02.2021 12:49:21