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.

Kleinstes Datum der Tabelle A mit kleinstem Datum der Tabelle B vergleichen
#1
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
Antworten Top
#2
Moin


Code:
=MIN(tbl_A[Datum])<MIN(tbl_B[Datum])
Stichwort: Excel Tabelle oder intelligente Tabelle oder dynamische Tabelle.
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

[-] Folgende(r) 1 Nutzer sagt Danke an shift-del für diesen Beitrag:
  • Excelbeginner
Antworten Top
#3
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
[-] Folgende(r) 1 Nutzer sagt Danke an EasY für diesen Beitrag:
  • Excelbeginner
Antworten Top
#4
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ß
[-] Folgende(r) 1 Nutzer sagt Danke an EasY für diesen Beitrag:
  • Excelbeginner
Antworten Top
#5
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
Antworten Top
#6
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ß
Antworten Top
#7
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
Antworten Top
#8
Hallöchen,

zumindest müsste schon mal das anders rum:

Sheets"(blatt").Cells(Rows.Count, 1).End(xlUp).Row = LastR
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#9
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)
Antworten Top


Gehe zu:


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