Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Insert Eigenschaft des Pictures Objektes ....

Insert Eigenschaft des Pictures Objektes ....
23.07.2008 19:47:00
Peter
Hallo,
wer kann mir einen Tip zu folgender Fehlermeldung geben:
Die Insert Eigenschaft des Pictures Objektes kann nicht zugeordnet werden
Ich habe folgenden Makroablauf
über die Prozedur


Sub ExcelAuftrag()
Pfad = "C:\Abfragen"
Workbooks.Open FileName:=Pfad & "\auftrag.xls"
End Sub


rufe ich die Datei auftrag.xls auf
Mit dem Start von Auftrag.xls wird über eine Ereignisprozedur


Private Sub Workbook_Open()
Call NeueSymbolleiste
Call SymbolleisteErstellen
End Sub


eine neue Symbolleiste erstellt.
In die Symbolleiste werden mit ActiveSheet.Pictures.Insert ... Bilder eingefügt.
Das funktioniert ganz gut unter XP. Wenn ich den gleichen Ablauf unter Excel 97 starte, tritt beim ersten Einfügen der Bilder ein Fehler auf. siehe unten.
Starte ich die Datei Auftrag.xls direkt ohne über den Umweg Sub ExcelAuftrag() usw. funktioniert es auch unter Excel 97, nur in der Kombination Sub ExcelAuftrag und SymbolleisteErstellen nicht.
(NeueSymbolleiste und SymbolleisteErstellen sind Makros der Datei Auftrag.xls)
Hat jemand einen Tip für mich, wie ich die Makros auch unter 97 ans Laufen bekomme?
Dem freundlichen Helfer besten Dank
Peter Welbers


Sub SymbolleisteErstellen()
Dim cBar As CommandBar
Dim dat As String
Dim cBarButton As CommandBarButton
Dim cPopup As CommandBarPopup
Dim cBarCntl As CommandBarControl
BildPfad = "C:\Abfragen\Bilder\"
Dateiname = ThisWorkbook.Name
'ToggleButton INFO einrichten
dat = Dir(BildPfad & "info.gif")
If dat  "" Then  

Fehler
Die Insert Eigenschaft des Pictures Objektes kann nicht zugeordnet werden.


ActiveSheet.Pictures.Insert _
(BildPfad & "info.gif").Select
Selection.Copy
Selection.Delete


...... usw.

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Insert Eigenschaft des Pictures Objektes ....
23.07.2008 20:06:00
Jens
Hi,
lass das unselige select weg und verwende stattdessen eine Objektvariable.
mfg Jens

AW: Insert Eigenschaft des Pictures Objektes ....
23.07.2008 20:22:00
Peter
Hallo Jens,
Danke für den Hinweis
hier zuhause habe ich kein excel 97. Ich werde es morgen am excel 97-Rechner ausprobieren und meinen Erfolg oder (hoffentlich nicht) Misserfolg berichten.
Grüße
Peter Welbers

Anzeige
AW: Insert Eigenschaft des Pictures Objektes ....
24.07.2008 08:12:00
Peter
Hallo Jens,
Dein Vorschlag hat doch nicht den erhofften Erfolg gebracht.
Mit
Dim Bild As Picture
Set Bild = ActiveSheet.Pictures.Insert(BildPfad & "info.gif")
Bild.Select
erscheint nach dem set-Befehl immer noch die Fehlermeldung:
Die Insert Eigenschaft des Pictures Objektes kann nicht zugeordnet werden.
Hast Du vielleicht noch eine Idee?
Mir ist aufgefallen, dass ich offenbar das Tabellenblatt gar nicht anspreche. Wenn ich vor den set-Befehl eine Anweisung setze wie Range("A3").select, dann springt der Curspr nicht auf die Zelle, sondern bleibt auf A1 stehen. Activate oder sheets(1). select haben auch keine Wirkung.
Grüße
Peter
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Fehlerbehebung: Insert Eigenschaft des Pictures Objektes in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Makro erstellen: Öffne Excel und erstelle ein neues Makro mit dem folgenden Code:

    Sub ExcelAuftrag()
       Pfad = "C:\Abfragen"
       Workbooks.Open FileName:=Pfad & "\auftrag.xls"
    End Sub
  2. Ereignisprozedur einfügen: Füge in das ThisWorkbook-Modul die folgende Prozedur ein:

    Private Sub Workbook_Open()
       Call NeueSymbolleiste
       Call SymbolleisteErstellen
    End Sub
  3. Symbolleiste erstellen: Erstelle die SymbolleisteErstellen-Prozedur, um Bilder mit ActiveSheet.Pictures.Insert hinzuzufügen:

    Sub SymbolleisteErstellen()
       Dim cBar As CommandBar
       Dim BildPfad As String
       BildPfad = "C:\Abfragen\Bilder\"
       Dim dat As String
       dat = Dir(BildPfad & "info.gif")
       If dat <> "" Then
           Dim Bild As Picture
           Set Bild = ActiveSheet.Pictures.Insert(BildPfad & "info.gif")
       End If
    End Sub
  4. Fehler testen: Starte das Makro und achte auf die Fehlermeldung "Die Insert Eigenschaft des Pictures Objektes kann nicht zugeordnet werden".


Häufige Fehler und Lösungen

  • Fehler: Die Insert Eigenschaft des Pictures Objektes kann nicht zugeordnet werden.

    • Lösung: Stelle sicher, dass der Pfad zu den Bildern korrekt ist und dass die Datei existiert. Überprüfe auch, ob die Excel-Version, die du verwendest, die Funktion unterstützt.
  • Fehler bei Verwendung von Select: Wenn du .Select verwendest, kann dies oft zu Problemen führen.

    • Lösung: Vermeide die Verwendung von .Select und arbeite stattdessen direkt mit der Objektvariable. Dies verbessert die Performance und verringert das Risiko von Fehlern.

Alternative Methoden

  • Verwende die Shapes.AddPicture-Methode anstelle von ActiveSheet.Pictures.Insert. Diese Methode ermöglicht mehr Kontrolle über das Bildobjekt:

    ActiveSheet.Shapes.AddPicture(Filename:=BildPfad & "info.gif", _
                                  LinkToFile:=msoFalse, _
                                  SaveWithDocument:=msoCTrue, _
                                  Left:=100, Top:=100, _
                                  Width:=50, Height:=50)

Praktische Beispiele

  1. Einfügen eines Bildes ohne Fehler:

    Sub BildEinfügen()
       Dim Bild As Picture
       On Error Resume Next
       Set Bild = ActiveSheet.Pictures.Insert("C:\Abfragen\Bilder\info.gif")
       If Err.Number <> 0 Then
           MsgBox "Bild konnte nicht eingefügt werden."
           Err.Clear
       End If
       On Error GoTo 0
    End Sub
  2. Verwendung der Shapes-Methode:

    Sub BildMitShapesEinfügen()
       ActiveSheet.Shapes.AddPicture "C:\Abfragen\Bilder\info.gif", _
                                       msoFalse, msoCTrue, 10, 10, -1, -1
    End Sub

Tipps für Profis

  • Debugging: Nutze die Debug.Print-Anweisung, um den Status von Variablen zu überwachen und Probleme schneller zu identifizieren.

  • Versionskompatibilität: Teste deinen Code in verschiedenen Excel-Versionen, um sicherzustellen, dass er überall funktioniert.

  • Objektvariablen: Verwende immer Objektvariablen anstelle von Select, um die Effizienz und Lesbarkeit deines Codes zu erhöhen.


FAQ: Häufige Fragen

1. Warum erhalte ich die Fehlermeldung bei ActiveSheet.Pictures.Insert?
Die Fehlermeldung kann auftreten, wenn der Pfad zum Bild ungültig ist oder die Bilddatei nicht gefunden wird. Stelle sicher, dass der Pfad korrekt ist.

2. Wie kann ich die Performance meines Codes verbessern?
Vermeide die Verwendung von .Select und arbeite direkt mit Objektvariablen. Dies reduziert die Ausführungszeit erheblich.

3. Funktioniert dieser Code in Excel 97?
Der Code kann in Excel 97 problematisch sein. Stelle sicher, dass du die Kompatibilität zu älteren Excel-Versionen berücksichtigst und teste gegebenenfalls alternative Methoden wie Shapes.AddPicture.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige