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

Forumthread: Einlesen eines Bildes in eine Bildvariable

Einlesen eines Bildes in eine Bildvariable
30.05.2024 14:51:27
AndreasHg
Hallo,

ich habe eine Liste von Bildern in meine Tabelle mittels Schleife geladen:



Lauf = 20
While Worksheets(2).Cells(4, Lauf).Value > ""
Cells(2, 1000 + Lauf).Activate

sPicture = Application.GetOpenFilename _
("Pictures (*.gif; *.jpg; *.bmp; *.tif), *.gif; *.jpg; *.bmp; *.tif", _
, Worksheets(2).Cells(4, Lauf).Value)


If sPicture = "False" Then Exit Sub
Set picA = ActiveSheet.Pictures.Insert(sPicture)
With picA
.ShapeRange.LockAspectRatio = msoTrue
.Height = 400
.Top = ActiveCell.Top
.Left = ActiveCell.Left
.Name = Worksheets(2).Cells(4, Lauf).Value
.ShapeRange.Name = Worksheets(2).Cells(4, Lauf).Value
End With

Lauf = Lauf + 1
Wend


Dabei habe ich den Bildern Namen zugewiesen, auf die ich später zugreifen möchte.

Jetzt würde ich gerne einzelne Bilder basierend auf dem Namen in eine Picture Variable kopieren, bekomme aber nicht die korrekte Syntax hin.

Mein Versuch bis hierhin ist:


Set picA = Shapes("Sales_Person")


wobei "Sales Person" den Namen des Bildes enthält (habe ich mit MsgBox verifiziert). picA ist als Picture dimensioniert. Ich denke, hier ist nur die genaue Ansprache des Bildes das Problem, ich finde aber nicht den Fehler.

Über Hilfe wäre ich sehr dankbar
Gruß
Andreas
Anzeige

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Einlesen eines Bildes in eine Bildvariable
30.05.2024 15:08:55
AndreasHg
Ach ja, mit



Shapes.Range(Array("Sales Person")).Delete


bekomme ich die Bilder einwandfrei gelöscht. Sie sind also über diesen Namen ansprechbar.

Verzweifelt ;-)
Andreas
AW: Einlesen eines Bildes in eine Bildvariable
30.05.2024 15:20:37
Onur
Wenn sie doch mit
Shapes.Range(Array("Sales Person")).Delete

ansprechbar sind, warum nicht
Set picA= Shapes.Range(Array("Sales Person"))


?
Anzeige
AW: Einlesen eines Bildes in eine Bildvariable
30.05.2024 15:23:16
AndreasHg
Hallo,

das ist genau meine Frage... ;-)

Hier bekomme ich aber immer den Fehler 400.

Gruß
Andreas
AW: Einlesen eines Bildes in eine Bildvariable
30.05.2024 15:28:45
Onur
Das war NICHT deine Frage - DU hast das geschreieben:
"Mein Versuch bis hierhin ist:
Set picA = Shapes("Sales_Person")

"
und ICH habe das hier vorgeschlagen:
Set picA= Shapes.Range(Array("Sales Person"))
Anzeige
AW: Einlesen eines Bildes in eine Bildvariable
30.05.2024 15:34:04
AndreasHg
Du hast recht! Ich hatte es nicht richtig reinkopiert... hatte mit dem Ausdruck gespielt und nicht bemerkt, dass ich den falschen reinkopiert habe.

Aber auch mit diesem funktioniert es nicht. Nach dem Fehler 400 steigt das Script aus.
AW: Einlesen eines Bildes in eine Bildvariable
30.05.2024 15:38:12
Onur
Poste mal eine Datei.
AW: Einlesen eines Bildes in eine Bildvariable
30.05.2024 16:05:46
AndreasHg
Hier findest Du die ziemlich zusammengestrichene Datei...

https://www.herber.de/bbs/user/169789.xlsm
Anzeige
AW: Einlesen eines Bildes in eine Bildvariable
30.05.2024 16:09:04
Onur
Was sollen wir mit einer Datei ohne irgend ein Bild?
Sowas kann ich mir auch in 1 sec zusammenbauen.
AW: Einlesen eines Bildes in eine Bildvariable
31.05.2024 10:04:16
AndreasHg
Hallo Onur,

das Thema einlesen ist nur ein Nebenkriegsschauplatz. Wie gesagt, geht es mir um den Teil, der in der Powerpoint_erstellen Sub enthalten ist.

Das Einlesen war ggf. nicht optimal, aber es tat, was es sollte. Deine Anpassungen nehme ich zukünftig als Vorlage, machen aber nicht genau das was ich brauche.

eigentlich habe ich genau hier:



Set picA = Shapes.Range(Array("Sales_Person"))
With picA
.ShapeRange.LockAspectRatio = msoTrue
.Height = 400
.Top = ActiveCell.Top
.Left = ActiveCell.Left
.Name = "Account"
.ShapeRange.Name = "Account"
End With



das Problem beim setzen des picA. Da bekomme ich den Fehler 400.

Sieh mir bitte nach, falls ich was übersehen habe, aber die Bilder laden so wie sie sollen in Bilder_einlesen. Dies ist auch nur ein Hilfsscript, dass einmal eingelesen gestartet wird, um die Bildliste einmal zu bekommen.

Mein Hauptthema ist (neben einigen anderen Scripten die da drin sind, die Erstellung der PowerPoint Datei, in der ich die einmal geladenen Bilder nach Bedarf an die richtigen stellen setzen muss. Dafür muss ich aus den eingeladenen Bildern das finden, das mit dem Ergebnis aus "Sales-Person" getagt ist.

Danke
Andreas
Anzeige
AW: Einlesen eines Bildes in eine Bildvariable
31.05.2024 11:52:48
Onur
Es GIBT kein Bild namens "Sales_Person" !
AW: Einlesen eines Bildes in eine Bildvariable
31.05.2024 12:17:57
Onur
Gewöhne dir mal ab, dauernd "On Error" zu benutzen.
Dadurch werden Fehler nicht korrigiert - sie werden nur unterdrückt und poppen an ganz anderer Stelle wieder auf, und du weisst nicht wo genau, da "nur bei nicht verarbeiteten Fehlern" eingeschaltet ist.
Je mehr ich zu deinem auch von dir festgestellten Fehler vordrang, desto mehr Fehler musste ich auf dem Weg korrigieren.
Wie du an meiner Version von "Bilder einlesen" sehen kannst, braucht man kein "On Error", um solche Fehler im Vorfeld auszuschliessen.
Hier mit lauffähiger version von "PowerPoint_erstellen"
https://www.herber.de/bbs/user/169804.xlsm
Anzeige
AW: Einlesen eines Bildes in eine Bildvariable
31.05.2024 12:41:38
AndreasHg
Hallo Onur,

der Wert "Sales_Person" kommt aus der Zelle H4, die als Namenswert "Sales_Person" hat.

Aus dieser wird dann der Name: Name 1 ausgelesen, der dann in das Range eingetragen werden soll. Kannst Du durch ein MsgBox vor dem Set PicA prüfen. Grundsätzlich also nicht anders, als wenn Du direkt "Name1" einträgst.

Gruß und Dank
Andreas
Anzeige
AW: Einlesen eines Bildes in eine Bildvariable
31.05.2024 12:54:13
Onur
DAS IST EIN RANGENAME und kein Namenswert oder was auch immer, und Ranges mit Namen spricht man SO an:
Set picA = Shapes.Range(Array(Range("Sales_Person")))


Hier die nochmals korrigierte Datei:

https://www.herber.de/bbs/user/169805.xlsm
Anzeige
AW: Einlesen eines Bildes in eine Bildvariable
31.05.2024 12:39:35
schauan
... da bekomme ich den Fehler 424 und nicht 400

Wie gesagt, mit
Set png = ActiveSheet.Shapes.Range(Array("Picture 2")) 
bekomme ich den nicht.
AW: Einlesen eines Bildes in eine Bildvariable
31.05.2024 12:40:59
Onur
Längst erledigt.....
AW: Einlesen eines Bildes in eine Bildvariable
30.05.2024 16:10:14
AndreasHg
Da ist ja meine Routine zum Bildereinlesen dabei...

Ein Bild auswählen und ggf. 10x laden
Anzeige
AW: Einlesen eines Bildes in eine Bildvariable
30.05.2024 16:46:12
schauan
Hallöchen,

Dim sPicture As String, picA, picC, picP, picLogo As Picture
Dim rngAM, rngSDM, rngPL, rngSp As Range

zumindest picLogo ist als Bild dimensioniert und rngSp als Bereich. Überlege mal, was die anderen sein könnten...

AW: ... und tue es mit ActiveSheet....
30.05.2024 17:21:34
schauan
...

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige