Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1504to1508
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
Inhaltsverzeichnis

Fristentracking - Datumswerte vergleichen

Fristentracking - Datumswerte vergleichen
19.07.2016 13:12:44
Marta
Hallo zusammen,
ich bin VBA-Neuling und habe ein Makro eines Kollegen übernommen, welches ich erweitern darf. Und zwar haben wir immer eine Excel-Quelldatei, von der nur die relevanten Spalten in eine neue Arbeitsmappe übertragen werden.
Ich soll nun eine Art "Tracking" programmieren - wenn also bestimmte (mehrere) Bedingungen erfüllt sind, soll von Zeile zu Zeile geprüft werden, ob die vorgegebene "Lieferfrist" eingehalten wurde. Wenn nicht, soll in einer neuen Spalte in der Ergebnis-Arbeitsmappe ein "x" eingetragen werden.
Ich habe nun folgendes bisher geschrieben:
Dim Heute As Date
Dim FristTageA As Integer
Dim Difftage As Integer
ColumnCellRechDatum = Cells.Find(What:="Datum").Column
Heute = Date
FristTageA = 3
Difftage = DateDiff("d", Heute, ColumnCellRechDatum)
If wsProtokoll.Range("Lieferanten-Status").Value = "übernommen" And
wsProtokoll.Range("Bewertung").Value = "A" And Difftage >= FristTageA Then
wsProtokoll.Range("Lieferant Bearbeitungszeit überschritten") = "x"
End If
Leider funktioniert das Makro nicht :( Was mache ich falsch? Habe ich vergessen etwas zu definieren oder habe ich die Bereiche falsch angesprochen?
Ich hoffe, ihr könnt mir weiterhelfen!
Danke und viele Grüße
Marta

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fristentracking - Datumswerte vergleichen
19.07.2016 14:07:52
Peter
Hallo Marta,
.Find und Datum finden ist nicht unbedingt ideal und obendrein solltest du nach dem .Find abfragen, ob das gesuchte Datum gefunden wurde "If ColumnCellRechDatum Is Nothing".
Die Variable ColumnCellRechDatum hast du so, wie ich es sehe gar nicht definiert und der .Find erfordert hier einen Range als Variable und obendrein ein Set ColumnCellRechDatum =
Nimm anstelle .Find lieber Application Match.
Gruß Peter
AW: Fristentracking - Datumswerte vergleichen
19.07.2016 14:40:03
Marta
Hallo Peter,
Danke für die Antwort! Das Find. kommt schon früher im Makro vor - ich hatte es hier noch ergänzt, damit ihr seht, dass die Spalte ColumnCellRechDatum über Find definiert ist. (hätte dazu schreiben müssen, dass das in das Makro hier nicht unbedingt mit hineingehört).
Ist es dann sinnvoller, ColumnCellRechDatum an der Stelle nochmal neu zu definieren? Der Debugger meckert auch immer an der DateDiff-Stelle.
Über eine weitere Hilfestellung wäre ich sehr dankbar!
VG, Marta
Anzeige
Beispieldatei?
19.07.2016 16:45:17
Michael
Hi Marta,
kannst Du bitte mal ne anonymisierte Beispieldatei mit Deinem Makro hochladen?
Denn ohne das Drumrum zu kennen ist es schwierig, Dir zu helfen.
Schöne Grüße,
Michael
AW: Beispieldatei?
20.07.2016 14:22:46
Marta
Hallo Michael,
hier die Beispieldatei: https://www.herber.de/bbs/user/107115.xlsm
Habe die Inhalte gelöscht und auch im Makro ein bischen umbenannt, sodass es möglich ist, dass der Debugger mekert.
Zur Logik nochmal:
Wenn der Lieferantenstatus auf "übernommen" steht, soll je nach Bewertung (A - D) geprüft werden, ob die Differenz an Tagen zwischen dem heutigen Datum und dem Erfassungsdatum (dieses steht in der Quelldatei) größer ist, als die für die jeweilige Bewertung (A - D) zulässige Frist in Tagen.
Bei Bewertung A sind es z. B. 3 Tage Bearbeitungszeit.
Kannst du mir damit weiterhelfen?
Danke und VG
Marta
Anzeige
AW: Beispieldatei?
20.07.2016 17:58:03
Michael
Hi Marta,
in Deiner Beispieldatei finde ich keine Spalte für das bzw. mit Datum, außerdem ist es zum Testen schon schön, wenn man wenigstens mal 10 oder 20 Werte drinhat.
Ich zitiere: soll je nach Bewertung (A - D) geprüft werden das ist komplett leer, und ich vermisse eine konkrete Angabe, was wann passieren soll.
Ansonsten ist das relativ umständlich und auch unsauber programmiert: die Fehlerbehandlung wird einfach aus- und wieder eingeschaltet, ohne sich darum zu kümmern, ob Fehler aufgetaucht sind.
Das kann dazu führen, daß die Daten irgendwann durcheinander geraten.
Du kannst ja nichts dafür, aber ich empfehle dringend, die Geschichte von einem Profi "säubern" zu lassen: z.B. Herrn Herber oder einem der Leute unter "Profile".
Schöne Grüße,
Michael
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige