Registriert seit: 21.02.2015
Version(en): 2016
20.04.2019, 07:32
(Dieser Beitrag wurde zuletzt bearbeitet: 20.04.2019, 07:36 von Excelbeginner.
Bearbeitungsgrund: Erweiterung
)
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
Registriert seit: 12.04.2014
Version(en): Office 365
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.
Registriert seit: 28.05.2017
Version(en): 365
20.04.2019, 09:32
(Dieser Beitrag wurde zuletzt bearbeitet: 20.04.2019, 09:35 von EasY.)
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:1 Nutzer sagt Danke an EasY für diesen Beitrag 28
• Excelbeginner
Registriert seit: 28.05.2017
Version(en): 365
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:1 Nutzer sagt Danke an EasY für diesen Beitrag 28
• Excelbeginner
Registriert seit: 21.02.2015
Version(en): 2016
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
Registriert seit: 28.05.2017
Version(en): 365
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ß
Registriert seit: 21.02.2015
Version(en): 2016
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
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
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)
Registriert seit: 28.05.2017
Version(en): 365
22.04.2019, 20:18
(Dieser Beitrag wurde zuletzt bearbeitet: 22.04.2019, 20:20 von EasY.)
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)