Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

letztes Datum finden
#1
Hallo Leute, ich habe ein Problem mit VBA,
ich suche eine Möglichkeit, das letzte eingegebene Datum eines Tabellenblattes in dem ich gerade arbeite, zu finden, nicht das aktuelle.
Die Schaltfläche muss kopierbar für alle Blätter sein, ich will damit vermeiden, das ich so viele VBA Codes für die Datei habe.
Ist so etwas möglich? 
Siehe Anhang
Danke Gruß Phoeni


Angehängte Dateien
.xlsm   Mappe3.xlsm (Größe: 24,44 KB / Downloads: 8)
Antworten Top
#2
Hallo,

das zuletzt eingegebene Datum wäre in deinem Beispiel: 26.04.2022, habe ich das richtig verstanden?
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#3
Hallo Klaus-Dieter, JA
ich hoffe, das ich später WIEDER einen anderen Gedanken habe den ich jetzt noch nicht überblicke oder erkennen kann.
Gruß Phoeni
Antworten Top
#4
Hallo,

dann brauchst du doch nur die letzte gefüllte Zelle ermitteln: LetzteZelle = Range("A1").End(xlDown).Row
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#5
Hallo, Danke. 
Und wo trage ich den Code ein? VBA ist es doch nicht?
Antworten Top
#6
Hallo,

das ist VBA.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#7
Ich bekomme es nicht hin.
Danke


Angehängte Dateien Thumbnail(s)
   

.xlsm   Mappe3.xlsm (Größe: 24,68 KB / Downloads: 1)
Antworten Top
#8
Hallo,


dann versuche es mal damit


Angehängte Dateien
.xlsm   Beispiel-Mappe.xlsm (Größe: 17,21 KB / Downloads: 8)
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#9
Moin Phoeni,

Du lässt in Deiner Frage offen, ob Deine Daten sortiert sind. Zum Auffinden des letzten = höchsten Datums in Spalte A einer unsortierten Liste brauchst Du kein VBA und kannst diese Formel verwenden:
Code:
=ADRESSE(MAX(WENN(A:A=MAX(A:A);ZEILE(A:A)));1;4)
Wichtig: Es ist eine Matrix-Formel, deren Eingabe du mit STRG+UMSCHALT+ENTER abschließen musst. Platziere die Formel z.B. in B1 und es wird die Zelladresse des höchsten Datums in Spalte A angezeigt.

Grüße

Moin nochmal,

es geht natürlich auch mit VBA. Der Code gehört in die Tabelle:
Code:
Option Explicit

Sub MaxFinden()
Dim i As Integer, r As Integer
Dim sCell As String
r = UsedRange.Rows.Count
For i = r To 1 Step -1
    If Cells(i, 1) > Cells(i + 1, 1) Then
        sCell = "A" & i
    End If
Next i
MsgBox sCell
End Sub
Grüße

d`r Bastler von den VBAsteleien.de
Win 10 & 11, Office 2019 & 2021 & macOS X.15, XL 2019
Antworten Top
#10
Moin d'r Bastler!
Gemäß Deiner Signatur (man lernt nie aus):
Eine Matrixformel über eine ganze Spalte laufen zu lassen, ist kacke, da viel zu viele Berechnungen notwendig sind.
Um festzustellen, in welcher Zeile von Spalte A deren Maximum steht, reicht folgendes:
(und ja, hier kann man ohne Performanceverlust ganze Spalten angeben)

ABCD
122.06.2022
229.04.2022Spalte A, Zeile:328.12.2022
328.12.2022
411.08.2022
528.05.2022
610.08.2022
708.01.2022
830.08.2022
909.08.2022
1025.07.2022
1114.11.2022
1227.01.2022
1323.08.2022
1419.03.2022
1517.03.2022

ZelleFormel
C2=VERGLEICH(MAX(A:A);A:A;0)
D2=MAX(A:A)

Genau so würde ich es auch mittels VBA lösen.
Sub Markiere_MaxDat()
Dim Hoch#
Hoch = Application.Max(Columns(1))
With Columns(1)
  .Cells(Application.Match(Hoch, .Cells, 0)).Select
End With
End Sub

Aber: Ich glaube, der TE will den "untersten" Eintrag ermitteln!
Per Formel (Frank Kabel in memoriam) so:
=VERWEIS(2;1/(A:A<>"");A:A)

Per VBA wie von Klaus-Dieter gezeigt.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Klaus-Dieter
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste