Registriert seit: 13.11.2014
Version(en): 2010
20.07.2015, 15:49
(Dieser Beitrag wurde zuletzt bearbeitet: 20.07.2015, 21:59 von Rabe.
Bearbeitungsgrund: Betreff korrigiert
)
Hallo liebe Excel Freunde,
Mappe1.xlsm (Größe: 154,87 KB / Downloads: 12)
ich habe folgndes Problem, welches ich nicht umzusetzen kann: Ich habe ein Arbeitsblatt "Verfall-Daten", dort stehen Artikel und am Ende ( in der letzten Spalte I) ein Datum, was mir zeigt, wenn ein Artikel sein Verfalldatum erreicht hat. Jetzt möchte ich gerne, das wenn ich die Mappe öffne und ein Artikel davon, das Datum erreicht hat, mir eine Warnmeldung gibt, mir diesen anzeigt und ich dann anschliessend dort zum Artikel hin springen kann. Wie kann ich das umsetzen? Weiß jemand eine super Lösung hierzu? Anbei ein Ausschnitt aus meine Mappe. Erstes Blatt die Hauptseite, in der ich nach dem Start der Mappe hauptsächlich bin. Zweites Blatt mit den Artikeln und Ablaufdaten. Grüße Mike
Registriert seit: 10.04.2014
Version(en): 2016 + 365
20.07.2015, 21:53
(Dieser Beitrag wurde zuletzt bearbeitet: 20.07.2015, 21:59 von Rabe.)
war Quatsch!
Meinen Beitrag bitte löschen!
Registriert seit: 14.04.2014
Hallo Mike, kopiere das Makro indas Modul DieseArbeitsmappe, dann werden dir beim Start der Mappe die passenden Zeilen markiert. Gruß Peter PHP-Code: Option Explicit
Private Sub Workbook_Open()
Dim lZeile As Long Dim rFundstelle As Range With ThisWorkbook.Worksheets("Verfall-Daten") For lZeile = 2 To .Cells(.Rows.Count, 9).End(xlUp).Row If IsDate(.Range("I" & lZeile).Value) Then If CDate(.Range("I" & lZeile).Value) = Date Then If rFundstelle Is Nothing Then Set rFundstelle = .Range(.Cells(lZeile, 1), .Cells(lZeile, 9)) Else Set rFundstelle = Union(rFundstelle, .Range(.Cells(lZeile, 1), .Cells(lZeile, 9))) End If End If End If Next lZeile If Not rFundstelle Is Nothing Then rFundstelle.Select End With Set rFundstelle = Nothing
End Sub
Registriert seit: 13.11.2014
Version(en): 2010
23.07.2015, 13:55
(Dieser Beitrag wurde zuletzt bearbeitet: 23.07.2015, 14:11 von Mike4711.)
Hallo Peter, sorry....bin jetzt erst dazu gekommen, deinen Code auszuprobieren. Code kopiert, in DieseArbeitsmappe eingefügt......Datei gespeichert und Neuaufruf der Mappe. Leider tut sich da nichst? Was macht der Code? Geht er Selbstständig zum Blatt "Verfall-Daten" und markiert die fälligen Artikel, oder öffnet sich ein Fenster und er zeigt die Daten an?
Mappe1.xlsm (Größe: 155,75 KB / Downloads: 4)
Habe im Blatt"Verfall-Daten" in Spalte H noch eien Formel zur Datumberechnung eingegeben (Bezugszelle hierzu K!) Grüße Mike
Registriert seit: 10.04.2014
Version(en): Office 2007, 2016, Win 10 64 bit
Hi,
schau mal deine Beispieldaten an. Verglichen wird das aktuelle Datum mit den Daten in Spalte I. Da heute der 23.7.15 ist, trifft eben keines der dortigen Daten zu, also läuft das Makro ohne erkennbares Ergebnis durch. Ändere einfach mal die Meldezeit in Zeile 2 mal auf 8, wenn du es heute probierst und diese Zeile wird markiert. Also bis dahin alles ok.
Mit freundlichen Grüßen :) Michael
Registriert seit: 13.11.2014
Version(en): 2010
24.07.2015, 11:37
(Dieser Beitrag wurde zuletzt bearbeitet: 24.07.2015, 11:38 von Mike4711.)
Hallo Michael, hier noch einmal meine Mappe, mit den Änderungen die du mir angegegben hast. :)
Mappe1.xlsm (Größe: 159,19 KB / Downloads: 9)
Ich weiß nicht, ob ich nen Brett vorm Kopf habe.....aber bei mir wird nicht markiert! Eigentlich hätte ich eine schönere Lösung, wenn das machbar wäre? Also das mir die abgelaufenen in einem Fenster angezeigt werden bei Allarm? Oder beim Start der Arbeitsmappe eine kurze Meldung "Achtung Verfalldatum einger Artikel erreicht und durch einem Klick auf Bestätigungs Button, dann zu dem entsprechenden Blatt mit den markierten Artikeln gesprungen wird? Grüße Mike
Registriert seit: 10.04.2014
Version(en): Office 2007, 2016, Win 10 64 bit
Moin Mike, ja ist das dicke Brett. Manchmal muß man genau lesen können: Zitat:Ändere einfach mal die Meldezeit in Zeile 2 mal auf 8, wenn du es heute (am 23.7.15) probierst und diese Zeile wird markiert. Du hast es wohl erst am 24.7.15 probiert und dann findet er natürlich keinen Treffer aufgrund deiner Kriterien Vorgabe. Es werden immer nur Daten erkannt, die bei Diff/Tage auf Null stehen. Es müssten auch Ergebnisse gefunden werden, wo Null und/oder -Werte erkannt werden. Da liegt für mich das eigentliche Problem deiner Sucherei. Falls du ja nicht tägliche diese Datei öffnen wirst, dann entgehen dir so eventuell genau die Daten, die schön älter sind, aber nun nicht vom Code ermittelt werden. Ich hab den Code nicht erstellt, aber sicher wird pefeu oder jemand anderes die angepaßten neuen Kriterien einbauen können.
Mit freundlichen Grüßen :) Michael
Registriert seit: 14.04.2014
Hallo Mike,
Da der Anwender erst sagen kann, was er haben möchte, wenn er sieht, was er bekommen hat, kriegt er das, was er nie gemeint hat.
Gruß Peter
Registriert seit: 13.11.2014
Version(en): 2010
(24.07.2015, 13:00)pefeu schrieb: Hallo Mike,
Da der Anwender erst sagen kann, was er haben möchte, wenn er sieht, was er bekommen hat, kriegt er das, was er nie gemeint hat.
Gruß Peter Guter Spruch! ;)) Erklären was man will, ist nicht immer einfach. Und erklärtes dann auch verstehen auch nicht....ob es von mir kommt , oder von jemand anderem. :) Also ich habe in der Zeile 2 die Meldezeit auf 8 gesetzt und ich kann schauen, mit Brille, mit Licht usw........ich bekomme keine Markierungen!  ;) Grüße Mike
Registriert seit: 13.11.2014
Version(en): 2010
24.07.2015, 14:13
(Dieser Beitrag wurde zuletzt bearbeitet: 24.07.2015, 14:14 von Mike4711.)
Hallo Michael , Hallo Peter, So...ich denke, das ich jetzt vielleicht wtwas verstanden habe. Ich habe in Zeile 2 das Verfalldatum so angepasst, sodass das Meldedatum mit dem heutigen Tag berücksichtigt wird. Beim Neustart der Mappe, kam eine Fehlermeldung udn markierte mir im Code folgende Stelle: PHP-Code: Private Sub Workbook_Open()
Dim lZeile As Long Dim rFundstelle As Range With ThisWorkbook.Worksheets("Verfall-Daten") For lZeile = 2 To .Cells(.Rows.Count, 9).End(xlUp).Row If IsDate(.Range("I" & lZeile).Value) Then If CDate(.Range("I" & lZeile).Value) = Date Then If rFundstelle Is Nothing Then Set rFundstelle = .Range(.Cells(lZeile, 1), .Cells(lZeile, 9)) Else Set rFundstelle = Union(rFundstelle, .Range(.Cells(lZeile, 1), .Cells(lZeile, 9))) End If End If End If Next lZeile If Not rFundstelle Is Nothing Then rFundstelle.Select End With Set rFundstelle = Nothing
End Sub
Nun bin ich wieder überfordert. :) Gruß Mike
|