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

Bilder übertragen

Bilder übertragen
16.04.2018 12:41:06
Callidus
Moin moin.
ich möchte bilder zwischen einer Excel tabelle und einer Userform hin und her übertragen. Eigentlich hatte ich mri das recht einfach vorgestellt über diesen Code:
UserForm1.Image1.Picture = Tabelle1.Image2.Picture
oder umgekehrt
Tabelle1.Image2.Picture = UserForm1.Image1.Picture
Leider kommt die Fehlermeldung "Methode oder Datenobjekt nicht gefunden.", wobei ".Image2" vom Compiler markiet wird.
Bei Image1 handelt es sich um die UserForm. Hier ein Bild aus einer Datei herein zu laden klappt Problemlos. Dieses Bild möchte ich nun in ein ActiveX Steuerelement (Image2) übertragen.
Umgekehrt möchte ich das Bild manchmal aber auch aus dem Steuerelement (Image2) innerhalb der Excel-Tabelle in die UserForm (Image1) übertragen.
Ich habe das Netz schon breit durchforstet und bin da auch auf den obigen Code gestoßen, der anscheinend bei dem Problemsteller auch erfolgreich funktioniert hat. bei mir tut er das eben nicht (namen der Objekte habe ich natürlich meinem Aufbau angepasst)
Vielen Dank

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

Betreff
Datum
Anwender
Anzeige
AW: Bilder übertragen
16.04.2018 12:58:03
ChrisL
Hi
Entweder gibt es keine Tabelle1 (Codename nicht Tabellenname) oder es gibt kein Image2.
Ansonsten bitte mittels Beispieldatei den Gegenbeweis antreten ;)
cu
Chris
AW: Bilder übertragen
16.04.2018 13:50:34
Callidus
https://www.herber.de/bbs/user/121066.xlsm
in meiner beispieldatei funktioniert es problemlos. habe es dort genauso gemach twie in meinem original (nur eben stark abgespeckt dargestellt).
Hab auch mitlerweile die Ursache für mein Problem gefunden.
In meinem Original funktioniert das hier nicht.
UserForm1.Image1.Picture = Tabelle1.Image2.Picture
wohl aber das:
UserForm1.Image1.Picture = wokrsheets("Tabelle1").Image2.Picture
Obwohl ich wie in meinem Beispiel die tabelle1 als öffentliche Varaible habe und dem richtigen tabellenblatt zugewiesen habe und auch zuvor initialisiert habe. Keine Schreibfehler vorhanden. Kein Plan, warum das nicht im Beispiel geht und im Original nicht. im restlichen teil des Original klappt es ja auch problemslos...sehr seltsam...
Anzeige
AW: Bilder übertragen
16.04.2018 13:58:04
Callidus
Da es doch zu verwirrung kommen könnte hier nochmal ordentlich aufgeführt was geht und was nicht:

Public Arbeitsblatt1 as Worksheet
Sub Funktioniert_nicht()
Set Arbeitsblatt1 = Worksheets("Tabelle1")
UserForm1.Image1.Picture = Arbeitsblatt1.Image1.Picture
End sub
Sub Funktioniert()
UserForm1.Image1.Picture = Worksheets("Tabelle1").Image1.Picture
End Sub
Wenn da jemand wüsste, warum das eine geht und das andere nicht, wäre ich sehr froh.
AW: Bilder übertragen
16.04.2018 14:02:08
ChrisL
Hi
Anhand einer funktionierenden Beispieldatei einen Fehler zu suchen ist natürlich schwierig.
Ich vermute ein durcheinander zwischen Tabellenname, Codename und Variablenname.
Userbild
Dim wks As Worksheet
Set wks = Codename
' oder
Set wks = Worksheets("Tabellenname")

Wenn du dann noch die Variable gleich wie den Tabellen- oder Codename nennst, ist das Chaos komplett.
cu
Chris
Anzeige
AW: Bilder übertragen
16.04.2018 14:34:18
Callidus
https://www.herber.de/bbs/user/121068.xlsm
Hab es jetzt geschafft meinen Fehler in dem Beispiel zu erzeugen.
ich verstehe nicht warum es an dieser Stelle nicht so klappen will, wie gedacht.
PS:
"Set wks = Codename" hab ich ja noch garnicht dran gedacht, dass das auch so geht. Auch wenns doch total offensichtlich und einleuchtend ist. Danke dafür schonmal :)
AW: Bilder übertragen
16.04.2018 14:57:13
ChrisL
Hi
So geht's...
UserForm1.Image1.Picture = wsZweiteSeite.OLEObjects("Image1").Object.Picture
Ganz klar ist mir das Verhalten nicht (vielleicht hat jemand eine fundiertere Erklärung).
Ich schätze es liegt daran, dass zum Zeitpunkt der Kompilierung (Code wird gestartet), die Objektvariable mit dem Worksheet noch leer ist. Somit gibt es zur Worksheet-Variable kein Image und der Debugger springt an. Im Alternativcode ist das Image nicht als Objekt, sondern als Textstring angegeben und dieser wird erst interpretiert, wenn die Worksheet-Variable festgelegt wurde.
Ob das Public definieren vom Worksheet sinnvoll ist, ist eine andere Frage. Ich verstehe zwar die Intention (Name nur einmal im Code definieren), aber darum gäbe es ja den Codename, welcher gleich bleibt, auch wenn der Tabellenname ändert.
cu
Chris
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige