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
1620to1624
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 - Datumsprogrammierung

VBA - Datumsprogrammierung
02.05.2018 05:46:05
Andreas
Liebe Community,
ich benötige Eure Hilfe.
Momentan bin ich an einer VBA dran und es hackt leider bei mehreren Punkten.
1) Ab der D5 (wobei D5 eingeschlossen ist) stehen Zeile für Zeile mehrere Daten (Datum) untereinander. Nun soll das VBA beim öffnen alle Zeilen löschen, bei denen das Datum in der Vergangenheit liegt.
2) In einem Textfeld (im Userform) soll geprüft warden, ob das Datum in der Vergangenheiot liegt. Wenn ja soll automatisch die Fehlermeldung kommen, dass dieses Datum ungültig ist.
3) Zeilen sollen nur über ein Userform geändert werden können. Somit habe ich eine ComboBox in dem Userform. In dieser ComboBox sollen die Zeilen ab A5 ausgewählt warden können, die nicht leer sind. Die restlichen Textfelder sollen sich nach der auswähl automatisch füllen.
Ich hoffe Ihr könnt mir weiterhelfen und zahle auf Eure hilfe.
Vielen Dank!!

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

Betreff
Datum
Anwender
Anzeige
Beispiel Mappe bitte ...owT
02.05.2018 08:56:53
Peter(silie)

AW: Beispiel Mappe bitte ...owT
03.05.2018 05:28:49
Andreas
Kann ich leider nicht schicken.
Hier mal den Code den ich für Punkt 2 habe
If IsDate(Me.txt_Datum) 
Leider ist dann hier gar kein Datum mehr gültig
Bitte um Hilfe
AW: Beispiel Mappe bitte ...owT
03.05.2018 08:28:39
Peter(silie)
Hallo,
IsDate gibt einen Boolean zurück.
Ein Boolean ist true oder false.
Ein Compiler wandet diesen Wert dann in einen Integer um.
Dieser Integer kann -1 oder 0 sein.
Dein If sieht also tatsächlich so aus:
If -1 
Somit triggert der If immer und jedes Datum ist ungültig.
Deine Abfrage muss so aussehen:
If IsDate(Me.txt_Datum.Value) Then
If CDate(Me.txt_Datum.Value) 

Anzeige
AW: Beispiel Mappe bitte ...owT
04.05.2018 03:49:29
Andreas
Vielen Vielen Dank. Funktioniert
AW: Beispiel Mappe bitte ...owT
04.05.2018 05:46:40
Andreas
Könntest du mir auch bei meinem nächsten Fehler helfen?
Hier sollen beim öffenen der Excel Liste die Zeilen gelöscht warden, die in der Vergangenheit _ sind. Leider become ich die eine Zeile im If Befehl nicht hin:

Dim lngZeile As Long
lngZeile = 5
While Cells(lngZeile, 4).Value  ""
If IsDate(Cells(lngZeile, 4)) Then
If CDate(Cells(lngZeile, 4)) 

AW: Beispiel Mappe bitte
04.05.2018 08:31:50
Peter(silie)
Hallo,
um Zeilen zu Löschen, solltest du kein While nehmen.
Du musst von hinten nach vorne gehen, da sich der Zeilen Index ändert nach Löschen einer Zeile.
Also:
Zeile 3 wird gelöscht.
Zeile 4 ist nun Zeile 3 geworden.
(Alle Zeilen rücken eins auf)
Dim lRow    As Long
Dim i       As Long
Dim tmp     As Variant
Dim cDte    As Date
cDte = Date
lRow = Cells(Rows.Count, 4).End(xlUp).Row
For i = lRow To 5 Step -1
tmp = Cells(i, 4).Value
If IsDate(tmp) Then
If CDate(tmp) 

Anzeige
AW: Beispiel Mappe bitte
05.05.2018 04:22:15
Andreas
Einfach genial. Genau das was ich wollte. Nochmals einen großen Dank.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige