Clever-Excel-Forum

Normale Version: Kleinstes Datum der Tabelle A mit kleinstem Datum der Tabelle B vergleichen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebe Excelperten,

ich habe zwei Tabellen, in denen in definierten Spalten jeweils Tagesdaten stehen.

Ich möchte jetzt prüfen, ob das kleinste Tagesdatum in Tabelle A unter dem kleinsten Tagesdatum in Tabelle B liegt.

Falls das nicht der Fall ist, soll ein MsgBox erscheinen.

Die Länge der Tabellen ist variabel, es müsste z.B. immer die letzte Zeile der Tabellen bestimmt werden, um den Minimalwert zu ermitteln.

Kann mir jemand helfen?

Vielen Dank

Excelbeginner
Moin


Code:
=MIN(tbl_A[Datum])<MIN(tbl_B[Datum])
Stichwort: Excel Tabelle oder intelligente Tabelle oder dynamische Tabelle.
Hi, 

Ich schätze das geht in Richtung VBA, richtig? 
Ich werde keine Komplettlösung liefern, aber das kleinste Tagesdatum in Tabelle A könntest du durch das Sortieren der tabelle mittels range.sort bekommen. Diesen Wert könntest du dann mit range.find in Tabelle B suchen. Darum dann eine if-schleife,die die msgbox auswirft. 

Gruß

P. S. : die letzte Zeile einer Tabelle findest du mit
Sheets"(blatt").Cells(Rows.Count, 1).End(xlUp).Row
Was mir gerade noch eingefallen ist: Wenn sich deine Tabelle A nicht ändern soll, könntest du statt des Sortierens auch range.worksheetfunction.min zum Ermitteln des kleinsten Datums nutzen. 
Hilft dir das schon? 

Gruß
Hallo Easy,

vielen Dank für Deine Hinweise.
Richtig, ich hatte an VBA gedacht.

Im Rahmen eines automatisierten Prozesses fülle ich Spalten mit autofill bis zu einer Zeilenzahl, die über dem Erforderlichen liegt. Deshalb habe ich viele Zeilen, die leer sind.

Mit der Funktion letzte Zeile, geht VBA auf diese letzte Zeile, damit kommt das nicht in Frage.

Deine letzter Hinweis hat micht weiter gebracht, allerdings muss der kleinste Wert ohne Null ermittelt werden.

Ich habe das jetzt so gelöst:

Die Matrixformel ermittelt den kleinsten Wert von Zelle B5:B6000 außer Null


   Public Function Minimaldatum(Bereich As Range) As Date
   Dim MinDat As Date


    ActiveSheet.Range("B1").Select
    Selection.FormulaArray = "=MIN(IF(R2C5:R6000C5>0,R2C5:R6000C5))" 'Matrixformel
    MinDat = Range("B1")

Viele Grüße

Excelbeginner
Hi, 

Freut mich, wenn ich dich der Lösung ein Stück näher gebracht habe. 
Wieso befüllst du Zeilen, die leer bleiben?
Liegen diese leeren Zeilen zwischen den relevanten Zeilen oder am Ende? 
Wenn sie am Ende liegen dürfte die Variante aus meinem post scriptum aber funktionieren. Vielleicht versuchst du einfach eine andere Spalte auszuwählen, mit der er die letzte Zeile ermittelt wird. Aus... Rows. Count, 1 wird rows. Count, 2 für Spalte B zum Beispiel.

Gruß
Hallo Easy, 

"Wieso befüllst du Zeilen, die leer bleiben?"

Ganz einfach, weil ich es nicht besser kann.

Die leeren Zeilen liegen am Ende.

Müsste ich dann ein Variabele definieren und dann diese Variabele in den VBA-Befehl, der das autofill macht einfügen?

z.B.

Dim LastR as Integer

....

Sheets"(blatt").Cells(Rows.Count, 1).End(xlUp).Row = LastR

Range("A1").Select
Selection.Autofill Destination:=Range("A1:ALastR")

Buuuh, das funktioniert sicher nicht, aber nach dem Grundgedanken?

Viele Grüße

Excelbeginner
Hallöchen,

zumindest müsste schon mal das anders rum:

Sheets"(blatt").Cells(Rows.Count, 1).End(xlUp).Row = LastR
Hi, 

Also so wird es nicht funktionieren. Vielleicht wäre eine Beispieldatei hilfreich, bei der man erkennt was du überhaupt vorhast.

Ergänzend zu Andres Aussage wäre auch die autofill Codezeile so nicht korrekt.

Es müsste heißen... Range("A1:A" & lastR)