Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1948to1952
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-Code mit sporadischen Fehler

VBA-Code mit sporadischen Fehler
27.10.2023 13:51:14
Bernd Fuchs
Hallo Excel-Gemeinde,

ich habe hier einen sporadischen Fehler, für den ich keine Ursache bzw. Abstellmaßnahme finden kann.
Für die gelegentliche Umrechnung von Datum in Wochen und Zeitpunkte in der Zukunft habe ich mir den Code zusammengebastelt.

Jetzt habe ich das Problem, dass ohne erkennbaren Grund "Fehler beim Kompileren: Projekt oder..." erscheint, sobald ich in einer völlig anderen Zelle irgendwo auf dem Blatt etwas ändere. Es funktioniert manchmal tagelang ohne Probleme und dann auf einmal ist der Fehler da.

Es wird mir dabei immer die Zeile "datHeute = Date" markiert.
Mache ich die Excel neu auf, funktioniert alles wie es soll.

Hat jemand eine Idee?

'Automatisch Datum eintragen

Private Sub Worksheet_Change(ByVal Target As Range)

On Error Resume Next

Dim intTag As Integer
Dim intWoche As Integer
Dim datDatum As Date
Dim datHeute As Date

intTag = ActiveSheet.Range("E3").Value
intWoche = ActiveSheet.Range("E4").Value
datDatum = ActiveSheet.Range("E2").Value
datHeute = Date

'Tage in Wochen
Dim C As Range
If Not Intersect(Target, Range("E3")) Is Nothing Then
For Each C In Intersect(Target, Range("E3"))
Application.EnableEvents = False
If IsNumeric(C.Text) Then
C.Offset(1, 0) = WorksheetFunction.RoundUp((intTag / 7), 0)
C.Offset(-1, 0) = datHeute + intTag
Else
C.Offset(1, 0).ClearContents
C.Offset(-1, 0).ClearContents
End If
Application.EnableEvents = True
Next
End If

'Wochen in Tage
Dim D As Range
If Not Intersect(Target, Range("E4")) Is Nothing Then
For Each D In Intersect(Target, Range("E4"))
Application.EnableEvents = False
If IsNumeric(D.Text) Then
D.Offset(-1, 0) = intWoche * 7
D.Offset(-2, 0) = intWoche * 7 + Date
Else
D.Offset(-1, 0).ClearContents
D.Offset(-2, 0).ClearContents
End If
Application.EnableEvents = True
Next
End If

'Datum
Dim E As Range
If Not Intersect(Target, Range("E2")) Is Nothing Then
For Each E In Intersect(Target, Range("E2"))
Application.EnableEvents = False
If IsNumeric(E.Text) Then
E.Offset(1, 0) = datDatum - datHeute
E.Offset(2, 0) = WorksheetFunction.RoundUp(((datDatum - datHeute) / 7), 0)
Else
E.Offset(1, 0).ClearContents
E.Offset(2, 0).ClearContents

End If
Application.EnableEvents = True
Next
End If

On Error GoTo 0

End Sub

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Code mit sporadischen Fehler
27.10.2023 13:53:14
Oberschlumpf
Hi Bernd,

bis zu deiner Idee-Frage hab ich mitgelesen.
Jetzt hab ich ne Gegenfrage.
Zeigst du uns bitte per Upload eine Bsp-Datei mit genügend Bsp-Daten und deinem Code?

Ciao
Thorsten
AW: VBA-Code mit sporadischen Fehler
27.10.2023 14:04:39
Bernd Fuchs
Danke Thorsten,

siehst du den Code nicht in meinem Beitrag?

Ich habe den Code jetzt mal in eine andere Excel kopiert. Keine Ahnung ob er da auftreten kann.
Aber vielleicht seht ihr auch was im Code?!
Das komische ist, dass der Fehler auf manch anderen Rechner mit der gleichen Office-Variante überhaupt nicht auftritt.

https://www.herber.de/bbs/user/163851.xlsm
Anzeige
AW: VBA-Code mit sporadischen Fehler
27.10.2023 13:54:35
onur
Warum kastrierst du Fehlermeldung ""Fehler beim Kompileren: Projekt oder..."" ???
Welch Meldung GENAU kommt denn jetzt? Glaubst du nicht, das das wichtig sein könnte ?
AW: VBA-Code mit sporadischen Fehler
27.10.2023 14:22:56
daniel
wenn Code mal funktioniert und mal nicht, dann könnte es daran liegen, dass Verweise "korrupt" sind.
sowas ist früher gerne mal bei einem Versionswechesel passiert.
dann mal unter EXTRAS - VERWEISE die angehakten Verweise durchgehen und den Haken entfernen, wenn was komisch ist

Gruß Daniel
AW: VBA-Code mit sporadischen Fehler
27.10.2023 14:42:32
Bernd Fuchs
Ja, so ein Phänomen hatte ich auch schonmal in einer anderen Datei. Da war eine Bibliothek standardmäßig angehakt, die nicht auf jeden Rechner vorhanden war. Ich habe die Bibo genommen und auf die anderen Rechner kopiert und dann ging es.
Ich hatte die Verweise schonmal durchgeschaut, da gibt es keinen Unterschied. Reicht es wenn ich nur schaue ob da MS Office 16.0 Object Libary steht oder muss ich direkt in die Bibo nach der kompletten Versionsnummer schauen? (16.0.xxx.xxx)
Anzeige
AW: VBA-Code mit sporadischen Fehler
27.10.2023 14:07:36
Bernd Fuchs
Entschuldige Onur,

ich dachte es ist eine Standardfehlermeldung die jeder kennt :)

Fehler beim Kompilieren:
Projekt oder Bibliothek nicht gefunden

OK Hilfe
AW: VBA-Code mit sporadischen Fehler
27.10.2023 14:23:24
onur
Was schonmal so auffällt:

1) Sporadische Fehler werden gerne von (hier auch noch völlig überflüssigem) "On Error" verursacht und man weiss nicht, wo der Fehler ursprünglich verursacht wurde, weil die Fehlermeldung unterdrückt wurde. Wozu ? Weil du es irgendwo gelesen hast? "On Error" benutzt man bewusst an einer bestimmten Stelle (z.B. die Datei, die man öffnen soll, könnte nicht vorhanden sein) und schaltet ihn sofort danach wieder aus. Aber nicht als Breitbandantibiotikum gegen alle möglichen Fehler.
2) "For Each"-Schleife für eine einzige Zelle ist Quatsch.
3) Events schaltet man am Anfang des Makros einmal aus und am Ende wieder ein, und nicht, wie bei dir (auch noch innerhalb einer Schleife) wieder und wieder und wieder ein bzw aus.
Anzeige
AW: VBA-Code mit sporadischen Fehler
27.10.2023 14:48:16
Bernd Fuchs
1) interessant ; gut möglich; werde ich mir merken
2) jetzt wo Sie es schreiben, klingt es logisch
3) interessant

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige