Clever-Excel-Forum

Normale Version: VBA-Code um Datum zu sichern | Laufzeitfehler 13
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich habe in einer Tabelle mit 3.000 Zeilen den nachfolgenden VBA-Code laufen. Dieser sichert mir das aktuelle Datum in Spalte BP des jeweiligen Datensatzes, sobald zum ersten Mal eine Eingabe in Spalte V der entsprechenden Zeile getätigt wurde.

577 Datensätze lang hat alles ohne Probleme funktioniert, als ich heute das File erneut geöffnet habe, erhalte ich die Fehlermeldung "Laufzeitfehler 13". Ich habe nichts am File verändert und verstehe daher nicht, warum der VBA-Code nun auf einmal nicht mehr funktioniert. - Hat hier jemand eine Lösung für diesen Fehler bzw. die Ursache?

Nachfolgend der VBA-Code:

Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
If Not Intersect(Target, Me.Columns(22)) Is Nothing Then
  For Each c In Intersect(Target, Me.Columns(22))
    If Not IsEmpty(c) And IsEmpty(Me.Cells(c.Row, "BP")) Then Me.Cells(c.Row, "BP").Value = Date
  Next c
End If
End Sub
Hallo,

was erwartest Du jetzt von uns? Wir haben Deine Datei nicht, um nach der Ursache dieser Fehlermeldung suchen zu können.

Gruß Uwe
Hallo,

ich kann die Datei hier nicht einspielen, da diese zum einen vertrauliche Daten enthält und zum anderen auf diverse andere Dateien verzweigt, jedoch nicht in den beschriebenen Zellen. Ich dachte daher, dass man anhand des VBA-Code in Kombination mit Aussage "Laufzeitfehler 13" ggf. schon sagen kann was hierfür der Fehler ist.

Mir sind keine Änderungen in der Datei bewusst, der VBA-Bereich ist nur für mich freigeschalten, sprich keiner kann am Code etwas verändern... und da ich nichts gemacht habe und das File nach der Schichtübergabe an mich heute nicht mehr funktioniert, bin ich eben verwundert und weiß gerade nicht mehr weiter.
Hallöchen,

Zitat:in Kombination mit Aussage "Laufzeitfehler 13"

Das ist, wie wenn Du sagst, mein Auto riecht übel. Ist's hinten raus oder eher vorn? Oder dazwischen? Und nach was?
Ein Fehler kommt zumeist in einer Zeile, diese Info wäre schon mal vorteilhaft.


Falls es diese ist,

If Not IsEmpty© And IsEmpty(Me.Cells(c.Row, "BP")) Then Me.Cells(c.Row, "BP").Value = Date

da ist zum testen zuweilen vorteilhaft, die If's schön einzeln zu programmieren, also

If Not IsEmpty© Then
If IsEmpty(Me.Cells(c.Row, "BP")) Then
Me.Cells(c.Row, "BP").Value = Date
End If
End If

Hinterher kann man sie ja wieder zusammenschrumpfen …

Du kannst auch in der ersten Codezeile einen Haltepunkt setzten und den Code dann mit F8 schrittweise ausführen, um zu sehen, wo es klemmt. Nimm auch mal Me.Cells(c.Row, "BP") in die Überwachung oder besser Me.Cells(c.Row, "BP").Value.

Ich würde eventuell auch mal schauen, ob in den Zellen Fehlerwerte sind, z.B. #DIV/0 oder was auch immer.
Die 13 ist ja ein Typfehler, irgendwo passen halt die Typen nicht zusammen ...