Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1768to1772
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

Laufzeitfehler bei call

Laufzeitfehler bei call
13.07.2020 22:50:58
henrik
Hallo zusammen.
Folgendes Problem, wäre super wenn ihr mir helfen könntet:
Ich will nach bestimmten User-Filterungen einen Bilderkatalog ausgeben, mit Klick auf das jeweilige Bild sollen weitere Infos eingeblendet werden. Mittlerweile habe ich eingesehen, dass wohl nur der Umweg z.B. CommandButton erzeugen und dann das Bild darauf einfügen zum Erfolg führt. Nach dem Einfügen des Buttons und der Umbenennung (Bild-ID) kommt ein Laufzeitfehler "Objekt erforderlich", sobald ich das Bild einfügen will. Wenn ich den .Picture-befehl in ein Unter-Sub ausgliedere und nach Durchlauf des Hauptmakros manuell starte funktioniert es und das Bild wird eingefügt. Das Unter-Sub in das Hauptmakro integrieren führt wieder zur Fehlermeldung.
Habt ihr eine Ahnung, wie ich das Problem umgehen kann?
-Im Code habe ich den Buttonname aktuell hart zugewiesen, wenn der Fehler ausgemerzt ist stell ich wieder auf dynamisch um -> daher die Public-Variablen
- die i-Zellen sind die Positionen im Bilderkatalog, in den j-Zellen stehen die Bild-Dateinamen (z.B. 25_2.jpg)
- Office 365

Public i As Integer
Public j As Integer
Public objname As String
Public Sub CommandButton1_Click()
Dim oPic As Object
Dim rngZelle As Range
i = 5
For j = 11 To 15
Set rngZelle = Cells(26, i)
Set oPic = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False,  _
DisplayAsIcon:=False, Left:=972.75, Top:=261.75, Width:=82.75, Height:=82)
oPic.Name = "Image" & Left(Cells(j, 10), 4)
objname = "Image" & Left(Cells(j, 10), 4)
oPic.Top = rngZelle.Top
oPic.Left = rngZelle.Left
oPic.Width = rngZelle.Width - 10
oPic.Placement = xlMoveAndSize
Call Bildname
i = i + 1
Next j
End Sub
Public Sub Bildname()
Image25_2.Picture = LoadPicture("G:\BO EI REP\20_Projekte\999_Prototypen\Projektordner HL\Ü _
bersicht Tableaukomponenten\Bilder Taster\25_2.jpg")
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler bei call
14.07.2020 08:37:48
Nepumuk
Hallo henrik,
versuch es mal so:
Option Explicit

Public i As Integer
Public j As Integer
Public objname As String

Public Sub CommandButton1_Click()
    
    Dim oPic As OLEObject
    Dim rngZelle As Range
    
    i = 5
    For j = 11 To 15
        Set rngZelle = Cells(26, i)
        Set oPic = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False, _
            DisplayAsIcon:=False, Left:=972.75, Top:=261.75, Width:=82.75, Height:=82)
        oPic.Name = "Image" & Left(Cells(j, 10), 4)
        objname = "Image" & Left(Cells(j, 10), 4)
        oPic.Top = rngZelle.Top
        oPic.Left = rngZelle.Left
        oPic.Width = rngZelle.Width - 10
        oPic.Placement = xlMoveAndSize
        Call Bildname(oPic)
        
        i = i + 1
    Next j
    
End Sub

Public Sub Bildname(ByRef oPic As OLEObject)
    oPic.Object.Picture = LoadPicture("G:\BO EI REP\20_Projekte\999_Prototypen\Projektordner HL\Übersicht Tableaukomponenten\Bilder Taster\25_2.jpg")
End Sub

Gruß
Nepumuk
Anzeige
AW: Laufzeitfehler bei call
14.07.2020 09:33:26
henrik
Vielen vielen Dank, funktioniert wunderbar! :))
Ihr seid Helden!
AW: Laufzeitfehler bei call
14.07.2020 08:41:11
Nepumuk
Ooooooooooooops,
den Bildnamen hatte ich übersehen.
Private Sub Bildname(ByRef oPic As OLEObject)
    oPic.Object.Picture = LoadPicture("G:\BO EI REP\20_Projekte\999_Prototypen\Projektordner HL\" & _
        "Übersicht Tableaukomponenten\Bilder Taster\" & oPic.Name & ".jpg")
End Sub


Gruß
Nepumuk
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige