Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Formel für kleiner als vorhandener Wert

Formel für kleiner als vorhandener Wert
07.12.2021 11:23:47
Frank
Hallo, ich stehe vor einem Problem mit meiner Formel.
In dieser überprüfe ich ob das Datum aus der TextBox1 in der Tabelle bereits vorhanden ist.
Nun möchte ich aber zusätzlich, dass der Wert (Datum) auch nicht kleiner sein darf als der letzte Eintrag.

Dim rZelle As Range
Set rZelle = Sheets("TabStromEG").Columns(1).Find(What:=TextBox1.Value, LookAt:=xlWhole, LookIn:=xlValues)
If Not rZelle Is Nothing Then
TextBox1.Value = "Datensatz bereits vorhanden"
TextBox1.ForeColor = vbRed
Gibt es hierfür eine einfache Lösung?
Viele Grüße, Frank.
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel für kleiner als vorhandener Wert
07.12.2021 11:55:31
Pierre
Hallo Frank,
kannst du bitte eine Beispielmappe hochladen?
Ein paar Datensätze, die Textbox, damit man sieht, wo und wie die Einträge reinkommen.
Gruß Pierre
AW: Formel für kleiner als vorhandener Wert
07.12.2021 11:59:44
Yal
Hallo Frank,

Dim rZelle As Range
Dim MinVal As Double
MinVal = WorksheetFunction.Min(Sheets("TabStromEG").Columns(1))
If CDate(MinVal) 
VG
Yal
Anzeige
Äh, zu kurz gedacht: zusätzlich zum Find! owT
07.12.2021 12:01:00
Yal
AW: Äh, zu kurz gedacht: zusätzlich zum Find! owT
07.12.2021 12:52:20
Frank
Vielen Dank,
aber leider funktioniert es noch nicht.
Die Datumseinträge stehen in der Spalte A ab Zeile 2 in der Tabelle.
Wenn nun z.B. noch gar kein Datum ab A2 steht erkennt der Code auch schon einen Fehler...
AW: Äh, zu kurz gedacht: zusätzlich zum Find! owT
07.12.2021 13:02:07
Yal
Hallo Frank,

Sub Vergleichen()
Dim Z As Range
Dim MinVal As Double
With Sheets("TabStromEG")
MinVal = WorksheetFunction.Min(.Columns(1).SpecialCells(xlCellTypeConstants, 23))
Set Z = .Columns(1).Find(What:=TextBox1.Value, LookAt:=xlWhole, LookIn:=xlValues)
If CDate(MinVal) 
VG
Yal
Anzeige
AW: Äh, zu kurz gedacht: zusätzlich zum Find! owT
07.12.2021 13:55:55
Frank
leider funktioniert es so noch nicht richtig, anbei eine Beispielmappe (txt in xlsm umbenennnen)
https://www.herber.de/bbs/user/149641.txt
AW: Äh, zu kurz gedacht: zusätzlich zum Find! owT
07.12.2021 14:47:40
Frank
Wäre es möglich das es an folgender Zeile scheitert?

MinVal = WorksheetFunction.Min(.Columns(1).SpecialCells(xlCellTypeConstants, 23))

Anzeige
AW: Äh, zu kurz gedacht: zusätzlich zum Find! owT
07.12.2021 17:59:00
Yal
Hallo Frank,
doppelte Schwierigkeit:
_ bei Min muss man sicherstellen, dass die Nullen nicht dabei sind, und dass mindestens ein gültige Datum dabei ist (!)
_ entweder vergleciht man als Datum mit DateDiff oder als Zahl, dann muss man konvertieren

Private Sub CommandButton1_Click()
Dim Z As Range
Dim MinVal As Date
With Sheets("TabStromEG")
MinVal = kleinsteDatum(.Columns(1))
Set Z = .Columns(1).Find(What:=TextBox1.Value, LookAt:=xlWhole, LookIn:=xlValues)
If DateDiff("d", MinVal, CDate(TextBox1.Value)) 
Eine Alternative zu DateDiff wäre

If CLng(CDate(TextBox1.Value)) 
Ergebnis ist gleich.
VG
Yal
Anzeige
AW: Äh, zu kurz gedacht: zusätzlich zum Find! owT
07.12.2021 20:24:55
Frank
Code funktioniert super.
Allerdings habe ich gerade festgestellt das das nicht der kleinste Wert der gesamten Spalte gesucht werden muss sondern nur der letzte Wert in der Spalte.
Dieser letzte Eintrag darf für den neuen Datumseintrag nicht unterschritten werden.
Da müsste doch eigentlich auch der Code verkleinert werden können, oder?
Anzeige
AW: Äh, zu kurz gedacht: zusätzlich zum Find! owT
07.12.2021 20:27:05
Frank
...also neues Datum darf nicht schon vorhanden sein und darf nicht kleiner sein als der letzter Eintrag der Spalte A
AW: Äh, zu kurz gedacht: zusätzlich zum Find! owT
08.12.2021 08:43:11
Yal
Hallo Frank,
dann ist es einfacher. KleinsteDatum wird nicht mehr gebraucht.

Private Sub CommandButton1_Click()
Dim Z As Range
Dim LetzteVal As Date
With Sheets("TabStromEG")
LetzteVal = CDate(.Range("A99999").End(xlUp).Value)
Set Z = .Columns(1).Find(What:=TextBox1.Value, LookAt:=xlWhole, LookIn:=xlValues)
If DateDiff("d", LetzteVal, CDate(TextBox1.Value)) 
VG
Yal
Anzeige
Funktioniert, Herzlichen Dank!
08.12.2021 19:49:43
Frank
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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