CDate Fehler

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: CDate Fehler
von: Heinz H
Geschrieben am: 21.12.2014 16:34:23

Hallo heute zum 3. mal im Forum
Bekomme einen Fehler bei

 If CDate(Ws.Cells(j, 1)) >= CDate(ComboBoxDatum_von.Text) And CDate(Ws.Cells(j, 1)) <= _
CDate(TextBoxEnde.Text) Then
Wenn ich nur wüsste warum?
In einer UF werden Daten in Sheets eingetragen.
Habe auch eine Testdatei hochgeladen.
Hätte jemand eine Hilfestellung anzubieten?
Gruß,Heinz

'Hier werden die Werte eingetragen
Private Sub CommandButtonEintragen_Click()
Dim j As Integer
Dim lZeile As Integer
Dim Ws As Worksheet
'Fehler abfangen
If ComboBoxSAP = "" Then
MsgBox "Es wurde keine SAP Nummer eingegeben!"
Exit Sub
Else
End If
If ComboBoxLinie = "" Then
MsgBox "Sie haben keine Linie ausgewählt!"
Exit Sub
Else
End If
If TextBoxTage = "" Then
MsgBox "Es wurde keine Laufzeit in Tagen eingegeben!"
Exit Sub
Else
End If
If TextBoxEnde = "" Then
MsgBox "Sie haben nicht auf Berechnen gedrückt!"
Exit Sub
Else
End If
'############################################################################
Set Ws = Sheets(ComboBoxLinie.Text)
lZeile = Ws.Cells(Rows.Count, 1).End(xlUp).Row
For j = 2 To lZeile
    If CDate(Ws.Cells(j, 1)) >= CDate(ComboBoxDatum_von.Text) And CDate(Ws.Cells(j, 1)) <= _
CDate(TextBoxEnde.Text) Then
        
If Ws.Cells(j, 2) <> "" Then
    If MsgBox("Wollen Sie den Auftrag wirklich überschreiben.", vbYesNo + vbQuestion, "Ü _
berschreiben ?") = vbYes Then
        Ws.Cells(j, 2) = ComboBoxSAP
        Ws.Cells(j, 3) = TextBox7
        Ws.Cells(j, 4) = TextBox6
    End If
Else
        Ws.Cells(j, 2) = ComboBoxSAP
        Ws.Cells(j, 3) = TextBox7
        Ws.Cells(j, 4) = TextBox6
End If
End If
Next j
'Unload Me
ComboBoxSAP = ""
ComboBoxLinie = ""
TextBoxTage = ""
TextBoxEnde = ""
TextBox6 = ""
TextBox7 = ""
End Sub
https://www.herber.de/bbs/user/94536.zip

Bild

Betrifft: AW: CDate Fehler
von: Daniel
Geschrieben am: 21.12.2014 17:01:39
Hi
der Fehler tritt auf, wenn Ws.Cells(j, 1) leer ist, weil die Umwandlungsfunktionen CDate, CLng usw mit leeren Zellen nichts anfangen können und mit einem Fehler abbrechen.
bei dir enthält in allen Blättern die Zeile 61 kein Datum.
du müsstest hier dann die Abfrage: if Ws.Cells(j, 1) = "" vorschalten, um dann diese Abfrage auf das Datum und damit den Fehler zu umgehen.
Gruß Daniel

Bild

Betrifft: Daniel ist SUPER
von: Heinz H
Geschrieben am: 21.12.2014 17:24:28
Hey Daniel
Darauf wäre ich nie gekommen.
Recht herzlichen Dank.
Gruß Heinz

Bild

Betrifft: AW: Daniel ist SUPER
von: Daniel
Geschrieben am: 21.12.2014 17:34:12
Da drauf zu kommen ist relativ einfach.
Wenn der Fehler auftritt, dann ist der Zeilenzähler j bei 61.
Das heißt in den 59 Zeilen vorher muss die Abfrage funktioniert haben.
Also muss man prüfen, worin sich die 61. Zeile auf dem Tabellenblatt von den davorliegenden Zeilen unterscheidet, und das ist dann mit hoher Wahrscheinlichkeit die Fehlerursache.
Die Textboxtexte scheiden als Ursache aus, denn die sind ja immer noch die selben.
Wären diese Fehlerverursachend, hätte es gleich schon beim ersten Schleifendurchlauf zu einem Fehler kommen müssen, ebenso wenn es ein grundsätlicher Programmierfehler wäre.
Gruß Daniel

Bild

Betrifft: AW: Daniel ist SUPER
von: Heinz H
Geschrieben am: 21.12.2014 17:37:17
Hallo Daniel
Danke für die Fachmänische Aufklärung.
Gruß Heinz

 Bild

Beiträge aus den Excel-Beispielen zum Thema "CDate Fehler"