Wir lesen aus einer Datei verschiedene Datums (sorry, falsches Wort - aber dafür eindeutig) aus. Die Variable ist als Date deklariert. Leider hat es sich nun im Laufe der Zeit ergeben, dass in den entsprechenden Zellen eben nicht immer wirklich ein Datum, sondern z.B. „KW 34“ oder auch „Anfang Mai“ steht. An dieser Stelle kriegen wir einen Fehler, weil es sich eben nicht um ein Datum handelt.
Mögliche Ansätze meinerseits sind:
Abfangen einer Fehlermeldung. Dies scheitert bisher dahingehend, dass ich den Error leider bisher nicht geschafft habe auf Null zu setzen. Allerdings kenne ich mich mit Error nicht so gut aus und bevorzuge lieber Variante 2.
Abfrage, ob es sich bei dem Wert, der ausgelesen werden soll, um ein Datum handelt. Dies am besten durch eine If-Abfrage, weil ich hier dann auch gleich eine E-Mail verschicken könnte und die Datei überspringen könnte.
Hat wer einen Code-Schnipsel für einen oder beide Variante? Als anfang hier kurz der programmierte Schnipsel:
Der Code ist super und im Ergebnis genau das, was ich brauche. Damit brauche ich jetzt auch nicht den blöden Error nutzen. Den Code zum Verschicken einer E-Mail habe ich schon, den brauche ich also nicht mehr.
Acuh ein schönes Wort - muss ich demnächst mal benutzen, dass hört sich so herrlich blöd an.
Schreibe im Editor „Err.“ und schau dir an was Intellisense
dir anbietet, bzw. F1…
Err.Clear setzt auf 0
Err.Clear könnte genau das sein, was mir immer gefehlt hat. In eine Schleife eingepackt hat der Code nämlich meist angehalten, wenn er einmal den Fehler registriert hat und beim nächsten Durchlauf hatte er ein Problem.
Als anfang hier kurz der programmierte Schnipsel:
Dim VB as Date
VB = ActiveCell
Bitte nicht so lange Codes zeigen, braucht man ja Stunden um
die durchzulesen *grins*
na ja - das war leider der ganze Code zu dem Problem. Ist ein älterer Code, den ich jetzt dann im Zuge des Problems angepasst habe (von wegen ActiveCell). Das wirklcih interessante kam ja durch Rainer, was meinen bisherigen Code ersetzt hatte - ich gebe zu, ich hätte eher mit einem Zusatz gerechent. Aber so geht es ja zum Glück auch.
P.S.: Habe die Änderugn bereits erfolgreich nutzen können. Danke also noch mal für die schnelle Hilfe.
Acuh ein schönes Wort - muss ich demnächst mal benutzen, dass
hört sich so herrlich blöd an.
im IT benutzen daß einige, möglich daß es mal im Duden auftaucht.
Wenn jmd. behauptet das wäre falsch, sag halt Dutum und Irrtum hätten den gleichen Wortstamm, daher also Irrtümer und Datümer, da muß er erstmal das Gegentum oder die Gegentümer beweisen/vorlegen )
Err.Clear könnte genau das sein, was mir immer gefehlt hat. In
eine Schleife eingepackt hat der Code nämlich meist
angehalten, wenn er einmal den Fehler registriert hat und beim
nächsten Durchlauf hatte er ein Problem.
Hier ein häufiges Beispiel wo/wie man das einsetzt:
Aufruf von Excel von Word heraus:
Dim ExcelObjekt As Excel.Application
On Error Resume Next
Set ExcelObjekt = GetObject(, "Excel.Application")
If Err.Number = 429 Then
'--\>Fehler bei ActiveX-Erstellung, vermutlich ist Excel nicht gestartet!
Err.Clear
Set ExcelObjekt = CreateObject("Excel.Application")
If Err.Number = 429 Then
Err.Clear
MsgBox "Es konnte nicht auf 'Microsoft Excel' zugegriffen werden! Vielleicht ist Excel nicht installiert!", vbExclamation, "Fehler beim Zugriff auf MS Excel"
End If
End If
End if
Und für den Einsatz von Err google mal nach
Errorhandler Err.Number
(Errorhandler ist frei wählbarer Name in dem fall)