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

Automatisierungsfehler?

Forumthread: Automatisierungsfehler?

Automatisierungsfehler?
03.01.2003 23:39:54
ChristianG
Hallo,

ich habe gerade eine Excel-Datei bearbeitet und ein paar Makros hinzugefügt und die das ganze dann gespeichert, getestet und wieder bearbeitet und getestet und gespeichert usw.

Das heißt soweit alles ganz normal und alles läuft prima. Jetzt ist alles so wie ich es haben will und alles funktioniert und ich speichere und beende Excel.

Jetzt kommt das Problem:
Nach dem Neustart von Excel kann ich die Datei nicht mehr öffnen. Ich bekomme immer die Fehlermeldung "Laufzeitfehler 404 - Automatisierungsfehler" (bleibt bei UserForm1.Show stehen) Warum??? Hilfe!!!

Ich habe eine Userform die geöffnet wird wenn in einer Zelle in Spalte B ein Doppelklick gemacht wird. (In Spalte B stehen Namen und in Spalte A fortlaufende Nummern) In der Userform erscheint dann ein Bild, dessen Name sich aus der Zahl in Spalte A ergibt (1.jpg, oder 10.jpg).

Kann es an der Pfadangabe bei LoadPicture liegen? Warum tritt der Fehler erst auf nachdem ich Excel einmal beendet habe?

Bin für jeden Hinweis auf den Übeltäter dankbar.

Gruß
Christian

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Automatisierungsfehler?
03.01.2003 23:57:17
Ramses
hallo Christian,

aus der Hüfte:
Die Pfadangabe zu deinen Bildern ist unvollständig.
Solange du getestet hast, warst du in dem Verzeichnis, aber nach einem Neustart greift EXCEL auf das Standardverzeichnis zu.

Ändere den Pfad in

Picture = LoadPicture("D:\Bilder\" & ActiveCell.Offset(0, -1).Value & ".jpg")

Auch in der Error-Anweisung.

Gruss Rainer

Anzeige
Re: Automatisierungsfehler?
03.01.2003 23:57:26
ChristianG
Ergänzung:

Der Fehler tritt nicht beim Öffnen auf, sondern erst wenn ich auf eine Zelle in Spalte B doppelklicke. ...aber erst seit ich Excel beendet und neu gestartet habe.

Re: Automatisierungsfehler - läuft wieder...aber..
04.01.2003 00:01:14
ChristianG
Hi Rainer,

vielen Dank für den Tipp! Es funktioniert jetzt wieder. Aber gibt es nicht eine Möglichkeit einen relativen Pfad anzugeben?

Vieleicht hast Du ja noch ne Idee.

Christian

Anzeige
Re: Automatisierungsfehler - läuft wieder...aber..
04.01.2003 00:03:26
Ramses
Hallo,

was verstehst du unter einem relativen Pfad ?

Gruss Rainer

Re: Automatisierungsfehler - läuft wieder...aber..
04.01.2003 00:17:25
ChristianG
Die Bilder befinden sich immer im Verzeichnis "bilder" - das befindet sich immer in dem Verzeichnis, in dem sich auch die Excel-Datei befindet. Das gesamte Verzeichnis (also XL-Datei und Bilder-Verzeichnis) soll aber verschoben werden können ohne das man etwas an dem Makro ändern muß.
Also die feste Angabe:
LoadPicture("C:\Documents and Settings\Benutzer\Bilder\Error.jpg")

soll zu einer variablen Angabe werden:
LoadPicture("UNTERBERZEICHNIS\Error.jpg")

Ich könnte die Bilder auch in das selbe Verzeichnis in dem sich auch die XL-Datei befindet kopieren und keinen Pfad angeben, aber dann ist das ganze recht unübersichtlich.

Wäre schön wenn es noch eine einfache Lösung gibt.

Anzeige
läuft jetzt - vielen Dank!
04.01.2003 00:47:16
ChristianG
Hab noch ein bischen gebastelt und jetzt läuft es wie es soll :-)

Application.ActiveWorkbook.Path gibt mir den Pfad zurück.

Also nochmal vielen Dank für die Hilfe.

Gruß Christian

;
Anzeige

Infobox / Tutorial

Automatisierungsfehler in Excel VBA beheben


Schritt-für-Schritt-Anleitung

  1. Makro Aufzeichnung: Stelle sicher, dass du dein Makro in der richtigen Umgebung aufzeichnest und die Datei regelmäßig speicherst.
  2. UserForm erstellen: Füge eine UserForm hinzu, die beim Doppelklick auf eine Zelle in Spalte B angezeigt wird.
  3. Bild-Pfad anpassen: Überprüfe den Pfad, der in LoadPicture verwendet wird. Achte darauf, dass er korrekt ist, insbesondere nach einem Neustart von Excel.
  4. Fehlerbehandlung einfügen: Verwende On Error GoTo in deinem Code, um Laufzeitfehler zu behandeln.
  5. Relative Pfade: Nutze Application.ActiveWorkbook.Path, um einen relativen Pfad zu erstellen, der unabhängig vom Speicherort der Datei funktioniert.
Picture = LoadPicture(Application.ActiveWorkbook.Path & "\bilder\" & ActiveCell.Offset(0, -1).Value & ".jpg")

Häufige Fehler und Lösungen

  • Laufzeitfehler 404 - Automatisierungsfehler: Dieser Fehler tritt häufig auf, wenn der Pfad zu den Bildern nicht korrekt angegeben ist. Überprüfe den Pfad und stelle sicher, dass die Bilder im angegebenen Verzeichnis vorhanden sind.
  • Laufzeitfehler 440: Dies kann auftreten, wenn eine Methode oder Eigenschaft nicht für das Objekt verfügbar ist. Achte darauf, dass deine Objekte korrekt deklariert sind.
  • Automatisierungsfehler VBA: Wenn du diesen Fehler erhältst, überprüfe, ob alle erforderlichen Bibliotheken in deinem VBA-Projekt referenziert sind.

Alternative Methoden

Falls du weiterhin Probleme mit dem Automatisierungsfehler hast, gibt es einige Alternativen:

  • Bilder im gleichen Verzeichnis: Kopiere die Bilder in dasselbe Verzeichnis wie die Excel-Datei und verwende keinen Pfad. Dies kann die Verwaltung vereinfachen.
  • Verwendung von Formeln: In einigen Fällen kannst du auch Excel-Formeln nutzen, um Bilder anzuzeigen, anstatt VBA zu verwenden.

Praktische Beispiele

Ein einfaches Beispiel für den korrekten Umgang mit Bilder in VBA:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Me.Columns("B")) Is Nothing Then
        UserForm1.Show
    End If
End Sub

Private Sub UserForm_Initialize()
    Dim Bildname As String
    Bildname = Application.ActiveWorkbook.Path & "\bilder\" & ActiveCell.Offset(0, -1).Value & ".jpg"
    Image1.Picture = LoadPicture(Bildname)
End Sub

Dieses Beispiel zeigt, wie du beim Doppelklick auf eine Zelle in Spalte B ein Bild laden kannst, wobei der Pfad dynamisch aus dem Verzeichnis der Excel-Datei abgeleitet wird.


Tipps für Profis

  • Debugging: Nutze die Debugging-Tools in VBA, um den Code Schritt für Schritt zu durchlaufen und Fehlerquellen schnell zu identifizieren.
  • Fehlerprotokollierung: Implementiere eine einfache Fehlerprotokollierung in deinem Code, um bei Problemen schneller reagieren zu können.
  • Regelmäßige Backups: Mache regelmäßig Backups deiner Excel-Dateien, besonders bevor du Anpassungen vornimmst.

FAQ: Häufige Fragen

1. Wie kann ich einen relativen Pfad in VBA verwenden?
Du kannst Application.ActiveWorkbook.Path verwenden, um den Pfad der aktuellen Arbeitsmappe abzurufen und ihn in deinen LoadPicture-Befehlen verwenden.

2. Warum bekomme ich den Automatisierungsfehler erst nach einem Neustart von Excel?
Der Fehler kann auftreten, weil Excel nach einem Neustart auf das Standardverzeichnis zugreift. Überprüfe die Pfadangaben in deinem Code.

3. Was kann ich tun, wenn ich den Laufzeitfehler 440 erhalte?
Stelle sicher, dass alle Objekte und Variablen in deinem Code korrekt deklariert und initialisiert sind. Achte darauf, dass alle benötigten Bibliotheken in den Verweisen deines VBA-Projekts enthalten sind.

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