Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1860to1864
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
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.

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
Ä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...
Anzeige
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
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?
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

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige