Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1768to1772
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

VBA Button "Archivieren"

VBA Button "Archivieren"
01.07.2020 17:20:56
Fabrice
Hallo allerseits
Ich probiere mich schon seit längerem an der VBA-Programmierung eines Buttons. Tabelleneinträge mit Ersatzprodukten für Lieferengpässe sollen in ein Archiv kopiert werden, wenn der Lieferengpass vorbei ist.
Soweit bin ich schon gekommen: beim Klicken des "Archivieren" Buttons werden bestimmte Spalten der obersten Tabellen-Zeile in eine zweite Mappe ("Archiv") unter Einfügen einer neuen obersten Zeile kopiert und mit einem Zeitstempel (von heute) versehen. Die verschobene Zeile wird dabei gelöscht.
Nun möchte ich jedoch, dass beim Drücken des Archivieren-Buttons nicht nur die erste Zeile verschoben wird, sondern alle Einträge mit einem End-Datum, das VOR dem heutigen Datum liegt (sprich alle Lieferengpässe, die in der Vergangenheit liegen).
Kann mir da jemand weiterhelfen?
Vielen Dank schon im Voraus!
lg
F. Roth
hier meine Datei:
https://www.herber.de/bbs/user/138695.xlsm

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Button "Archivieren"
02.07.2020 14:08:21
Pierre
Hallo Fabrice,
ich habe mal was gebastelt, ich bekomme es aber nicht hin, dass die kopierten Zeilen im Blatt Archiv lückenlos und sauber untereinander geschrieben werden.
Das müsste da noch irgendwie rein gebracht werden, aber ich schaffe es nicht mit den mir bekannten Methoden.
Aber evtl. hilft dir das trotzdem schon weiter.
Innerhalb des Makros habe ich versucht, es ein wenig zu erklären.
https://www.herber.de/bbs/user/138711.xlsm
Gruß Pierre
AW: VBA Button "Archivieren"
02.07.2020 17:21:42
Fabrice
Hallo Pierre
Erst einmal vielen herzlichen Dank für deine Hilfe und Arbeit, die du in mein Problem gesteckt hast!
Einige Dinge sind mir beim Durchchecken noch aufgefallen, die Du sicher in Kürze ändern könntest:
1.) Die Daten, die geprüft werden sollen, ob sie in der Vergangenheit liegen sind in der Spalte "Dauer", und nicht in der Spalte "Datum" (etwas verwirrende Benennung meinerseits, sorry!)
2.) In der Mappe "Archivieren" werden jeweils so viele Zeitstempel gesetzt, wie Zeilen in der Mappe "Lieferengpässe" vorhanden sind. Somit werden neue Zeitstempel auf alte Einträge geschrieben!
3.) Wie du schon erwähnt hast entstehen Lücken, wenn in der Mappe "Lieferengpässe" ein Eintrag übersprungen wird, da sein Datum noch nicht in der Vergangenheit liegt. Hat da jemand eine Idee, wie man dieses Problem lösen könnte?
Vielen Dank für die Hilfe!
lg
Fabrice
Anzeige
AW: VBA Button "Archivieren"
03.07.2020 14:04:11
Augustus
Hi Pierre,
wenn Du noch Interesse an einer Lösung hast, bring doch bitte eine Datei mit Musterergebnissen. Denn ich verstehe Punkt 3 nicht. Und zu 2.) Sollen alle Zeilen ein aktuelles Daum bekommen? Muss die Archivtabelle so viele Leerzeichen haben?
Gruss August
AW: VBA Button "Archivieren"
03.07.2020 15:21:14
Fabrice
Hallo August
Ich habe basierend auf dem Lösungsvorschlag von Pierre das Programm nochmals umgeschrieben:
https://www.herber.de/bbs/user/138760.xlsm
Wenn in der 4. Spalte (benennt mit "Ende") das Datum in der Vergangenheit liegt, wird Zeile 2, 3 und 5 in die Mappe "Archiv" kopiert und mit einem Zeitstempel versehen. Auch entstehen auf diese Weise keine Lücken mehr (dies war der unverständlich formulierte Punkt 3). Das Archivieren der Daten funktioniert nun somit genau, wie ich es mir vorgestellt habe!
Nun ist jedoch ein neues Problem aufgetaucht. Damit mein Loop nicht unendlich lange läuft habe _ ich ihn mit

For x = 1 To 30
auf 30 Runden beschränkt. Werden 30 Durchgänge überschritten, entstehen plötzlich ungewollte Leerzeilen in der Mappe "Archiv". Wieso passiert das und wie könnte man das lösen?
Vielen Dank für eure Hilfe!
lg
Fabrice
https://www.herber.de/bbs/user/138760.xlsm
Anzeige
AW: VBA Button "Archivieren"
03.07.2020 16:28:25
Fabrice
Offenbar zählt der Code

If CDate(Cells(i, 4)) 
auch leere Kästchen als WAHR (leeren Kästchen wird ev. der Wert 0 gegeben). Deswegen werden leere Zeilen ebenfalls ins Archiv abgelegt, da sie die Vorgabe erfüllen, kleiner als das heutige Datum zu sein.
Wie könnte ich in meinem Code leere Zeilen überspringen? Mein Versuch mit einem ElseIf-Code führte nicht zu einer Besserung.
Vielen Dank für eure Hilfe
lg
Fabrice
AW: VBA Button "Archivieren"
03.07.2020 17:19:56
ralf_b
If CDate(Cells(i, 4)) "" Then
oder du prüfst die Länge ab mit len(Cells(i, 4)) > 6
ein datum hat ja ne bestimmte länge
Anzeige
AW: VBA Button "Archivieren"
09.07.2020 16:12:24
Fabrice
Vielen Dank Ralf!
Mit dieser Zeile klappt nun alles einwandfrei!
Gruss
Fabrice

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige