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

Forumthread: Runtime error 50290

Runtime error 50290
Fettertiger
Hallo zusammen,
bei einem Tool, das bei mindestens 30 Usern problemlos läuft (egal ob unter 2003 oder 2007), kommt es bei einem bestimmten User immer wieder zu einem Fehler mit dem Code 50290 (Application defined or Object defined error). Der Fehler tritt in der untenstehenden Funktion beim "PasteSpecial" auf:
Private Sub insertRange(doc As Word.Document, rng As Excel.Range, Optional lngType As Long =  _
wdPasteEnhancedMetafile)
rng.Copy
doc.Windows(1).Selection.PasteSpecial Placement:=wdInLine, DataType:=lngType
End Sub

Das dazugehörige Worddokument ist zu dem Zeitpunkt der Laufzeit geöffnet (vorher werden schon diverse Daten mit der gleichen Funktion an Bookmarks im Worddokument kopiert), der Range der der Funktion übergeben wird ist ebenfalls gültig. Im Debugmodus habe ich es bei sichtbarer (Ursprungs-)range geschafft den Code problemlos laufen zu lassen, sonst kommt es bei dem bestimmten User aber immer zu diesem Fehler. Aktiviere ich vorher die Range per VBA, dann kommt es an ganz anderen Stellen im Code zum Fehler 50290.
Im Anschluss (selbst nach dem Abbruch der Makros) sind dann in Excel alle Menüpunkte grau. Man kann Excel dann nur noch über den taskmanager beenden. Hat jemand eine Idee was man da machen kann?
Danke im voraus für Eure schnelle Hilfe
Fettertiger
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Runtime error 50290
26.04.2010 15:52:26
fcs
Hallo Fettertiger,
Fehler 50290 scheint eines der großen Mysterien unter VBA zu sein. Sehr suspekt ist, dass das Makro im Schrittmodus funktioniert. Es gibt einige Steuerelemente, die den Ablauf eines Makros behindern können, wenn sie den Fokus haben bzw. aktiviert sind. Ist dies die Fehlerursache, dann funktioniert ein Makro im Schrittmodus, weil der Fokus nicht mehr auf dem Steuerelement ist.
Wie fast zu erwarten ist der Fehler auch nicht ohne weiteres reproduzierbar.
Möglicher weise läuft bei dem"Problemuser" noch irgend etwas im Hintergrund, was den Datenaustausch per Makro zwischen Excel und Word behindert.
Auf jeden fall solltest du mal probieren, eine Fehlerbehandlung einzubauen, die zumindest evtl. den kompletten Absturz von Excel verhindert.
Gruß
Franz
Sub aatest()
'Testprozedur zum Aufruf der Sub
Call insertRange(doc:=Word.ActiveDocument, _
rng:=ActiveWorkbook.Worksheets(1).Range("A1:F13"))
End Sub
Private Sub insertRange(doc As Word.Document, rng As Excel.Range, Optional lngType As Long = _
wdPasteEnhancedMetafile)
On Error GoTo Fehler
rng.Copy
doc.Windows(1).Selection.PasteSpecial Placement:=wdInLine, DataType:=lngType
Err.Clear
Fehler:
With Err
Select Case .Number
Case 0 'alles Ok
Case 50290
MsgBox "Fehler-Nr: " & .Number & vbLf & .Description & vbLf & vbLf _
& "Kopiervorgang unvollständig!" & vbLf _
& "Abbruch bei " & rng.Parent.Name & " - Bereich: " & rng.Address
Case Else
MsgBox "Fehler-Nr: " & .Number & vbLf & .Description
End Select
End With
Application.CutCopyMode = False
End Sub

Anzeige
AW: Runtime error 50290
26.04.2010 17:46:53
Fettertiger
Hallo Franz,
vielen Dank, immerhin zeigt mir Deine Antwort dass ich nicht alleine auf dem Schlauch stehe. Den Fehler abzufangen ist an dieser Stelle natürlich kein Problem, evtl, kann ich soagar mit application.wait oder über abfrage des application.ready properties abfragen ob der code irgendwann mal weiter abgearbeitet werden kann. Ich hoffte allerdings dass irgendjemand die Ursache für den Fehler kennt. In einem Englischen Forum habe ich sogar gelesen das könnte an der Registry liegen und man sollte doch mal sowas wie CCClean drüberlaufen lassen. Das haben wir gemacht, hat aber irgendwie auch nix genützt.
Danke und Gruss
Fettertiger
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Fehlerbehebung bei Runtime Error 50290 in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Fehlerquelle identifizieren: Der Laufzeitfehler 50290, auch bekannt als "Application defined or Object defined error", kann durch verschiedene Faktoren verursacht werden. Überprüfe, ob alle Objekte, auf die dein VBA-Code zugreift, korrekt definiert sind.

  2. Fehlerbehandlung einbauen: Um den Fehler abzufangen und zu verhindern, dass Excel abstürzt, kannst Du eine Fehlerbehandlung in Deinen Code einfügen. Hier ist ein Beispiel:

    Private Sub insertRange(doc As Word.Document, rng As Excel.Range, Optional lngType As Long = _
    wdPasteEnhancedMetafile)
       On Error GoTo Fehler
       rng.Copy
       doc.Windows(1).Selection.PasteSpecial Placement:=wdInLine, DataType:=lngType
       Err.Clear
       Exit Sub
    Fehler:
       MsgBox "Fehler-Nr: " & Err.Number & vbLf & Err.Description
       Application.CutCopyMode = False
    End Sub
  3. Makro im Schrittmodus testen: Um herauszufinden, wo der Fehler auftritt, führe das Makro im Schrittmodus aus. So kannst Du sehen, an welcher Stelle der Fehler auftritt.

  4. Fokusprobleme überprüfen: Achte darauf, dass kein Steuerelement den Fokus hat, während das Makro läuft. Dies kann zu einem Laufzeitfehler führen.


Häufige Fehler und Lösungen

  • Fehler: "Application defined or Object defined error": Dieser Fehler tritt oft auf, wenn auf ein nicht existierendes Objekt zugegriffen wird. Überprüfe die Referenzen in deinem VBA-Projekt.

  • Fehler bei PasteSpecial: Wenn der Fehler beim PasteSpecial-Befehl auftritt, stelle sicher, dass der Bereich, den Du kopieren möchtest, auch tatsächlich gültig ist und dass das Ziel-Dokument geöffnet ist.

  • Excel stürzt ab: Wenn Excel nach dem Fehler nicht mehr reagiert, kann es an einer schlechten Ressourcenverteilung oder an einem anderen Programm im Hintergrund liegen. Überprüfe die Hintergrundprozesse.


Alternative Methoden

  • Verwendung von Application.Wait: Wenn Du den Fehler 50290 vermutest, weil das Skript zu schnell ausgeführt wird, kannst Du eine kurze Pause einfügen:

    Application.Wait Now + TimeValue("00:00:01") ' 1 Sekunde warten
  • Verzögerte Ausführung: Statt Application.Wait könntest Du auch DoEvents verwenden, um Excel Zeit zu geben, andere Prozesse abzuschließen.


Praktische Beispiele

Hier ist ein einfaches Beispiel zur Verwendung der insertRange-Subroutine:

Sub TestInsertRange()
    Call insertRange(doc:=Word.ActiveDocument, _
                     rng:=ActiveWorkbook.Worksheets(1).Range("A1:F13"))
End Sub

Dieses Makro ruft die insertRange-Subroutine auf und übergibt den Bereich A1:F13 des aktiven Arbeitsblatts an ein geöffnetes Word-Dokument.


Tipps für Profis

  • Regelmäßige Sicherung der Registry: Da einige Benutzer berichtet haben, dass Registry-Probleme mit dem Laufzeitfehler 50290 verbunden sind, ist es ratsam, regelmäßig Sicherungen zu erstellen oder Tools wie CCleaner zu verwenden.

  • Testen in verschiedenen Excel-Versionen: Manchmal kann der Fehler versionsabhängig sein. Teste Deinen Code in verschiedenen Versionen von Excel (2003, 2007, 2010 usw.), um zu sehen, ob der Fehler auftritt.

  • Ressourcenmanagement: Achte darauf, dass Excel genügend Ressourcen hat, insbesondere wenn Du mit großen Datenmengen arbeitest. Schließe unnötige Programme, um die Leistung zu verbessern.


FAQ: Häufige Fragen

1. Was ist der Laufzeitfehler 50290? Der Laufzeitfehler 50290 ist ein "Application defined or Object defined error", der auftritt, wenn VBA auf ein nicht definiertes Objekt zugreifen möchte.

2. Warum funktioniert mein Makro im Schrittmodus, aber nicht im normalen Modus? Im Schrittmodus wird das Makro Zeile für Zeile ausgeführt, was bedeutet, dass der Fokus auf den Steuerelementen nicht stört. Überprüfe, ob ein Steuerelement den Fokus hat.

3. Wie kann ich den Fehler 50290 vermeiden? Integriere eine Fehlerbehandlung in deinen Code und stelle sicher, dass alle Objekte korrekt definiert sind. Teste auch, ob das Ziel-Dokument geöffnet ist, bevor Du Daten kopierst.

4. Was soll ich tun, wenn Excel nach dem Fehler nicht mehr reagiert? Beende Excel über den Task-Manager und überprüfe, ob im Hintergrund andere Programme laufen, die die Ressourcen beanspruchen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige