Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro geht und geht doch nicht

Makro geht und geht doch nicht
16.09.2008 15:02:10
David
Hallo VBA-Profis,
ich wollte einem anderen Forumsmitglied hier helfen und habe auch alles soweit hinbekommen, aber an einem Problem bin ich gerade verzweifelt.
In der Datei:

Die Datei https://www.herber.de/bbs/user/55435.xls wurde aus Datenschutzgründen gelöscht


wird beim Ändern der Zelle "C5" ein Worksheet-Change-Ereignis ausgelöst. Das ablaufende Makro stoppt mit Laufzeitfehler 1004 (Die Methode 'Range' für das Objekt '_Worksheet' ist fehlgeschlagen). Wenn ich nun per 'debuggen' in den VBA-Editor gehe, die markierte Zeile mit F8 bestätige und anschließend das Makro bis zum Ende durchlaufen lasse, wird alles wie gewünscht, ohne weitere Fehlermeldung durchgeführt, auch das Ergebnis stimmt.
Ein testhalber eingefügtes "On Error Resume Next" hat nix gebracht, ganz im Gegenteil, dann werden einige Schritte des Makros gar nicht ausgeführt.
Ich habe auch versucht, das Makro in einem Modul manuell auszuführen, auch das scheiterte mit Fehlermeldungen.
Vielleicht weiß ja einer von euch eine Lösung, weil ich definitiv am Ende bin.
Danke und Gruß
David

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

Betreff
Datum
Anwender
Anzeige
AW: Makro geht und geht doch nicht
16.09.2008 15:06:00
Hajo_Zi
Hallo David,
ich habe es gerade getestet in 2000 und es kommt kein Laufzeitfehler.
Gruß Hajo
AW: Makro geht und geht doch nicht
16.09.2008 15:13:00
David
Oh, mann, jetzt bin ich noch mehr verwirrt, obwohl ich dachte, das geht nicht mehr.
Der Nutzer des Makro hat mir auch eben geschrieben, dass es bei ihm durchläuft, allerdings mit einem falschen Ergebnis.
Hajo schreibt, das bei ihm auch kein Fehler kommt.
Ich habe gerade noch mal meine hochgeladene Datei geprüft und bei mir kommt der Fehler.
Ich werd' noch irre.
Um alle - auch unwahrscheinliche Fehlerquellen - auszuschließen, werde ich jetzt mal meinen PC neustarten.
Gruß
David
Anzeige
Code läut durch, ohne Probleme
16.09.2008 15:13:00
Matthias
Hallo David
zur Info:
Läuft bei mir durch, wie geschmiert (ohne Fehler)
Ich arbeite mit XL2000.
Vielleicht hast Du irgendwelche Add-Ins geladen, die den Fehler verursachen?
Gruß Matthias
AW: Code läut durch, ohne Probleme
16.09.2008 15:36:33
David
So, jetzt noch ein paar Tests mit Addins:
Alle Addins deaktiviert: Code läuft ohne Fehler durch, Ergebnis stimmt aber nicht, da eine eingefügte Formel (Nettoarbeitstage) das Analyse-Addin braucht.
Analyse-Addin aktiviert: Code läuft mit Fehler durch aber Ergebnis stimmt.
Komischerweise habe ich festgestellt, dass ich die Addins nicht bei geöffneter Datei aktivieren/deaktivieren darf, da anschließend der Code nur bruchstückhaft (immerhin ohne Fehlermeldung) ausgeführt wird.
Hat noch jemand Ideen?
Gruß
David
Anzeige
AW: Code läut durch, ohne Probleme
16.09.2008 15:48:22
Hajo_Zi
Hallo David,
das ein AddIn aktiviert sein muss Stand nicht im Beitrag. Ich habe es jetzt aktiviert. Ich habe jetzt mal den Zustand nur ausgelesen und das Makro läuft durch.

Option Explicit
Private Sub worksheet_change(ByVal Target As Range)
Dim rc As Range
Dim BoZustand As Boolean
BoZustand = AddIns("Analyse-Funktionen").Installed
Const tThisRange = "C8:C38,H8:H38,N8:N38"
If Target.Address  "$C$5" Then Exit Sub
ActiveSheet.Unprotect
Application.EnableEvents = False
Application.ScreenUpdating = False
ActiveSheet.Name = _
Format(Range("C5"), "mmm.yy") & " bis " & Format(Range("N5"), "mmm.yy")
Range("B2") = Fix(Month(Range("C5")) / 4) + 1 & ". Quartal"
Range("D8:D38,I8:I38,O8:O38").ClearContents
Range(tThisRange).Formula = "=TRIM(IF((5-WEEKDAY(A8,2))-SUMPRODUCT(" _
& "(feiertagsliste>=A8)*(feiertagsliste5;NICHT(ISTNV(VERGLEICH(A8;feiertagsliste;0))));"""";$R$4)))"
For Each rc In Range(tThisRange)
rc.Offset(, 1).Copy
rc.Offset(, 1).PasteSpecial Paste:=xlPasteValues
If IsError(rc.Offset(, 1)) Then rc.Offset(, 1).ClearContents
If IsError(rc) Then
rc.ClearContents
Else
If rc = "" Then
rc.ClearContents
Else
rc = rc
End If
End If
Next
Application.CutCopyMode = False
Application.ScreenUpdating = True
Application.EnableEvents = True
ActiveSheet.Protect
End Sub


Gruß Hajo

Anzeige
AW: Code läut durch, ohne Probleme
16.09.2008 15:53:00
David
Danke Hajo, Rudi hat das Problem gefunden und gelöst.
Gruß
David
AW: Makro geht und geht doch nicht
16.09.2008 15:39:56
Rudi
Hallo,
bei mir ist es auch hängen geblieben. Geänderte Version funzt:

Private Sub worksheet_change(ByVal Target As Range)
Dim rc As Range
Dim tThisRange As Range
Set tThisRange = Range("C8:C38,H8:H38,N8:N38")
If Target.Address  "$C$5" Then Exit Sub
ActiveSheet.Unprotect
Application.EnableEvents = False
Application.ScreenUpdating = False
ActiveSheet.Name = _
Format(Range("C5"), "mmm.yy") & " bis " & Format(Range("N5"), "mmm.yy")
Range("B2") = Fix(Month(Range("C5")) / 4) + 1 & ". Quartal"
Range("D8:D38,I8:I38,O8:O38").ClearContents
tThisRange.Formula = "=TRIM(IF((5-WEEKDAY(A8,2))-SUMPRODUCT(" _
& "(feiertagsliste>=A8)*(feiertagsliste5;NICHT(ISTNV(VERGLEICH(A8;feiertagsliste;0))));"""";$R$4)))"
For Each rc In tThisRange
rc.Offset(, 1).Copy
rc.Offset(, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False,  _
Transpose:=False
If IsError(rc.Offset(, 1)) Then rc.Offset(, 1).ClearContents
If IsError(rc) Then
rc.ClearContents
Else
If rc = "" Then
rc.ClearContents
Else
rc = rc
End If
End If
Next
Application.ScreenUpdating = True
Application.EnableEvents = True
ActiveSheet.Protect
End Sub


Gruß
Rudi

Anzeige
DANKE + DANKE + DANKE
16.09.2008 16:08:00
Heinz
Hallo David, Rudi & Matthias & Hajo
Ich möchte mich bei Euch A L L E N recht, recht herzlich für Eure Hilfe bedanken.
Insbesonders gilt mein Dank an David,der diese Glanzleistung zu 99% geschafft hat.
Nochmals Danke & grüsse an alle
Heinz

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige