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

Forumthread: VBA Jüngste Datum ermitteln

VBA Jüngste Datum ermitteln
12.10.2017 16:14:14
TinaW
Hallo Excel Freunde,
erstmal riesen Dank an die Gemeinde dafür, dass ich hier immer sehr kompetente Antworten finde. Heute habe ich folgendes Problem-
Ich möchte gerne eine Schleife durch eine Spalte mit Daten durchlaufen lassen und am Ende soll das JÜNGSTE Datum der Spalte ermittelt warden. Folgenden Ansatz habe ich:
Private Sub CmdLetzterEintrag_Click()
Dim Datum As Date, Datum2 As Date, JuengsteDatum As Date
Dim i As Integer, AnzahlLetzteSpalte As Integer
Worksheets("Daten").Select
AnzahlLetzteSpalte = Range("B65536").End(xlUp).Offset(1, 0).Row
For i = 2 To AnzahlLetzteSpalte - 1
Datum = Worksheets("Daten").Cells(i, 3).Value
Datum2 = Worksheets("Daten").Cells(i + 1, 3).Value
If Datum > Datum2 Then
JuengsteDatum = Datum
End If
Next i
MsgBox JuengsteDatum
End Sub
Jetzt bin ich schon fast 3 Std am basteln aber finde den Fehler irgendwie nicht.
Könnt Ihr mir evtl sagen, wo der Fehler liegt bzw. ob der Ansatz komplett falsch ist?
Besten Dank im Voraus und eine schöne Restwoche.
Tina
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Jüngste Datum ermitteln
12.10.2017 16:17:40
Rainer
Hallo Tina,
wie wäre es mit MIN(Range("C:C"))?
Gruß,
Rainer
AW: VBA Jüngste Datum ermitteln
12.10.2017 16:43:09
TinaW
Hallo Rainer,
verstehe nicht ganz was du meinst. Ich würde es gerne ein Makro schreiben, da das jüngste Datum
Mit einem KlickButton ermittelt werden soll.
Ist mein Ansatz falsch gewählt ?
Gruß
Tina
Anzeige
AW: VBA Jüngste Datum ermitteln
12.10.2017 16:43:10
TinaW
Hallo Rainer,
verstehe nicht ganz was du meinst. Ich würde es gerne ein Makro schreiben, da das jüngste Datum
Mit einem KlickButton ermittelt werden soll.
Ist mein Ansatz falsch gewählt ?
Gruß
Tina
AW: VBA Jüngste Datum ermitteln
12.10.2017 16:43:12
TinaW
Hallo Rainer,
verstehe nicht ganz was du meinst. Ich würde es gerne ein Makro schreiben, da das jüngste Datum
Mit einem KlickButton ermittelt werden soll.
Ist mein Ansatz falsch gewählt ?
Gruß
Tina
Anzeige
AW: VBA Jüngste Datum ermitteln
12.10.2017 16:43:13
TinaW
Hallo Rainer,
verstehe nicht ganz was du meinst. Ich würde es gerne ein Makro schreiben, da das jüngste Datum
Mit einem KlickButton ermittelt werden soll.
Ist mein Ansatz falsch gewählt ?
Gruß
Tina
AW: VBA Jüngste Datum ermitteln
12.10.2017 16:43:14
TinaW
Hallo Rainer,
verstehe nicht ganz was du meinst. Ich würde es gerne ein Makro schreiben, da das jüngste Datum
Mit einem KlickButton ermittelt werden soll.
Ist mein Ansatz falsch gewählt ?
Gruß
Tina
Anzeige
AW: VBA Jüngste Datum ermitteln
12.10.2017 16:52:15
Hajo_Zi
Hallo Tina,
das ist doch VBA.
Ich hätte
WorksheetFunction.Min(ActiveSheet.Range("C:C"))
benutzt.

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung. o.w.T."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben, mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Anzeige
AW: VBA Jüngste Datum ermitteln
12.10.2017 16:53:41
Daniel
wäre das jüngste Datum nicht MAX?
je weiter zurückliegend, um so kleiner ist doch der Datumswert.
Gruß Daniel
AW: VBA Jüngste Datum ermitteln
12.10.2017 16:52:24
Daniel
HI
du vergleichst hier ja immer nur 2 benachbarte Zellen.
um das jüngste Datum in der Spalte zu finden, musst du immer die akutelle Zelle mit dem bisher gefundenen jüngsten Datum vergleichen.

JuengsteDatum = Worksheets("Daten").Cells(2, 3).Value
For i = 2 To AnzahlLetzteSpalte - 1
Datum = Worksheets("Daten").Cells(i, 3).Value
If Datum > JuengsteDatum Then
JuengsteDatum = Datum
End If
Next i
allerdings brauchst du hierfür keine Schleife programmieren, in Excel (und damit auch in VBA) gibt es hierfür die Funktion MAX:
JuengsteDatum = Worksheetfunction.Max(Worksheets("Daten").Columns(3))

ersetzt quasi dein ganzes geszeigtes Makro.
Gruß Daniel
Anzeige
AW: VBA Jüngste Datum ermitteln
12.10.2017 17:04:41
Rainer
Ja, da hat Daniel völlig recht. Es muss eine Worksheetfunction sein und logischerweise MAX. Mea culpa.
Für den ursprünglichen Ansatz schau mal hier:
https://www.mrexcel.com/forum/excel-questions/132404-max-min-vba.html
Da stehen am Ende auch 2 Functions die dein Problem lösen können.
Gruß,
Rainer
Anzeige
AW: VBA Jüngste Datum ermitteln
13.10.2017 11:43:14
TinaW
Hat alles wunderbar geklappt !!! vielen Dank
;
Anzeige
Anzeige

Infobox / Tutorial

Jüngstes Datum in Excel mit VBA ermitteln


Schritt-für-Schritt-Anleitung

Um das jüngste Datum in einer Excel-Spalte mithilfe von VBA zu ermitteln, kannst du folgende Schritte ausführen:

  1. Öffne dein Excel-Dokument und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Füge ein neues Modul hinzu (Rechtsklick auf "VBAProject" > Einfügen > Modul).

  3. Kopiere den folgenden VBA-Code und füge ihn in das Modul ein:

    Private Sub CmdLetzterEintrag_Click()
        Dim JuengsteDatum As Date
        JuengsteDatum = WorksheetFunction.Min(Worksheets("Daten").Columns(3))
        MsgBox JuengsteDatum
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Füge einen Button in dein Arbeitsblatt ein und verknüpfe ihn mit der CmdLetzterEintrag_Click-Subroutine.

  6. Klicke auf den Button, um das jüngste Datum zu ermitteln.


Häufige Fehler und Lösungen

  • Fehler: "Typen unverträglich"

    • Lösung: Stelle sicher, dass die Zellen in der Spalte, die du überprüfst, tatsächlich Datumswerte enthalten. Leere Zellen oder Text können diesen Fehler verursachen.
  • Fehler: Kein Wert wird angezeigt

    • Lösung: Prüfe, ob die Spaltennummer im Code korrekt ist. Wenn dein Datum in einer anderen Spalte steht, musst du die Zahl in Columns(3) entsprechend anpassen.
  • Fehler: Schleife funktioniert nicht

    • Lösung: Wenn du eine Schleife verwendest, stelle sicher, dass die Vergleichsbedingungen korrekt sind. Beispiel:
    For i = 2 To AnzahlLetzteSpalte
        If Worksheets("Daten").Cells(i, 3).Value < JuengsteDatum Then
            JuengsteDatum = Worksheets("Daten").Cells(i, 3).Value
        End If
    Next i

Alternative Methoden

Wenn du das jüngste Datum in Excel ohne VBA ermitteln möchtest, kannst du die Funktion MIN direkt in einer Zelle verwenden:

=MIN(C:C)

Diese Formel gibt das früheste Datum in der Spalte C zurück. Dies ist eine einfache und schnelle Methode, um das jüngste Datum zu finden, ohne ein Makro zu erstellen.


Praktische Beispiele

Angenommen, du hast eine Liste von Daten in Spalte C. Hier sind einige praktische Beispiele zur Verwendung von VBA:

  1. Ermittlung des jüngsten Datums:

    Dim JuengsteDatum As Date
    JuengsteDatum = WorksheetFunction.Min(Worksheets("Daten").Columns(3))
    MsgBox "Das jüngste Datum ist: " & JuengsteDatum
  2. Überprüfung des Datumsformats:

    If IsDate(Worksheets("Daten").Cells(i, 3).Value) Then
        ' Datum verarbeiten
    Else
        MsgBox "Ungültiges Datum in Zeile " & i
    End If

Tipps für Profis

  • Nutze immer Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Das hilft bei der Fehlersuche.
  • Verwende WorksheetFunction.Min für die Ermittlung des jüngsten Datums, um den Code zu vereinfachen und die Effizienz zu steigern.
  • Wenn du mit großen Datenmengen arbeitest, kann es sinnvoll sein, den Bereich auf das tatsächliche Datenfeld zu beschränken, um die Laufzeit zu verkürzen.

FAQ: Häufige Fragen

1. Wie kann ich das früheste Datum finden?
Um das früheste Datum zu ermitteln, verwende die Funktion MAX in Kombination mit einer Bedingung, die sicherstellt, dass nur gültige Daten berücksichtigt werden.

2. Was ist der Unterschied zwischen MIN und MAX in Bezug auf das Datum?
MIN gibt das früheste Datum zurück, während MAX das späteste Datum ermittelt. Achte darauf, die richtige Funktion entsprechend deiner Bedürfnisse zu wählen.

3. Kann ich diese Methoden auch in Excel 365 verwenden?
Ja, die beschriebenen Methoden zur Ermittlung des jüngsten Datums funktionieren in allen neueren Excel-Versionen, einschließlich Excel 365.

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