Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1068to1072
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

ActiveSheet.Image1.Picture = .....

ActiveSheet.Image1.Picture = .....
23.04.2009 17:00:17
Frank
Liebes Forum ich hab da mal ein Problem
In meinem Tabellenblatt sind mehrere Images direkt ohne Userform eingebettet. ( kann sein, über 100 )
Nun möchte ich zu bestimmter Zeit bestimmte Bilder ändern.
Der Befehl "ActiveSheet.Image1.Picture = ActiveSheet.Image2.Picture" funktioniert einwandfrei.
Nun soll aber die Auswahl ( Image1 oder Image32 ... ) vom Code generiert werden.
Der Versuch die Images über ihren Namen oder ihren Index anzusprechen schlägt fehl.
Activesheet.OLEObjects("Image1").Picture = Activesheet.Image2.Picture
Activesheet.Shapes("Image1").Picture = Activesheet.Image2.Picture
Activesheet.OLEObjects(1).Picture = Activesheet.Image2.Picture
Activesheet.Shapes(1).Picture = Activesheet.Image2.Picture
keiner dieser Zeilen funktioniert (Objekt unterstützt diese Eigenschaft oder Methode nicht)
Das zu ändernde Image hat definitiv den Index 1
Activesheet.Shapes(1).Select beweist das.
Wie kann ich dem Image ein anderes Bild zuordnen, ohne den Wortlaut "Activesheet.Image1.Picture ....." zu verwenden ?
Danke im Voraus
Frank

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ActiveSheet.Image1.Picture = .....
23.04.2009 18:43:03
Nepumuk
Hallo Frank,
so:
Tabelle1.OLEObjects("Image1").Object.Picture = ....
Gruß
Nepumuk
AW: ActiveSheet.Image1.Picture = .....
24.04.2009 15:36:07
Frank
Hi Nepomuk
Super, das funktioniert einwandfrei !!!
Da wär ich im Leben nicht drauf gekommen .
Du bist mein Held !
Gruß an alle
AW: ActiveSheet.Image1.Picture = .....
24.04.2009 15:47:49
Frank
Hi Nepomuk zum 2.
Weil das so super funktioniert hat, trau ich mich gleich noch 'ne Frage zu stellen.
Wie muß der Befehl lauten um Bilder zu ändern, die mit "Activesheet.Pictures.Insert(......)" erstellt wurden ?
Gruß Frank
AW: ActiveSheet.Image1.Picture = .....
24.04.2009 17:46:49
Nepumuk
Hallo Frank,
wie ändern, Größe / Position / Name .....?
Gruß
Nepumuk
AW: ActiveSheet.Image1.Picture = .....
24.04.2009 18:09:56
Frank
na vorhandenes bild weg, neues bild hin....(exakt an selbe stelle)
aber hat nicht aus einer datei, sondern kopie von bild auf anderem blatt
gruss frank
Anzeige
AW: ActiveSheet.Image1.Picture = .....
24.04.2009 20:07:04
Nepumuk
Hallo Frank,
alle Shapes in der Tabelle abklappern, wenn es ein Bild ist, Position merken und löschen. Dann anderes Bild kopieren, in die entsprechende Tabelle einfügen und positionieren. Dürften rund 10 Zeilen Programm sein.
Mehr kann ich dir nicht sagen, da du z.B. verheimlichst, wo sich die anderen Bilder befinden und wie sie angesprochen werden können.
Gruß
Nepumuk
AW: ActiveSheet.Image1.Picture = .....
25.04.2009 09:55:46
Frank
Hi Nepomuk
So..., dann holen wir mal ein bißchen weiter aus... *lol*
Ich versuche mich daran, den Windows-Explorer als Excel-Tabelle nachzubauen.
(aber nicht nur Größe, Änderungsdatum usw sondern auch die korrekten Symbole)
Sicher, es klingt unsinnig, das Fahrrad noch einmal zu erfinden, aber mein Ziel ist es, an einem konkreten Projekt meine VBA-Kenntnisse zu verbessern.
Meine Idee ist folgende:
Beim Programmstart werden alle Ordner der Ebene0 (C:\, D:\, E:\, ...) und alle Ordner der Ebene1 (C:\Programme, C:\System, C:\Spiele ...) in ein verstecktes Tabellenblatt eingelesen.
Auf dem Activesheet wird nur die Ebene0 angezeigt.
Wenn ich jetzt auf das (+) neben C:\ klicke :
- werden soviele Leerzeilen eingefügt, wie Ordner der Ebene1 vorhanden sind
- die Ordner der Ebene1 eingetragen
- die Symbole der Ordner aus dem versteckten blatt in das Activesheet kopiert
wenn jetzt auf das (-) neben C:\ geklickt wird, werden die entsprechenden Zeilen (mitsamt Bildern) vom Activesheet gelöscht, stehen aber auf dem verstecktem Blatt immer noch zur Verfügung zum schnellen Kopieren ohne neues Einlesen
wenn jetzt die Symbole im versteckten blatt als Image vorhanden sind, ist es recht aufwendig die Kopie auf dem Activesheet an die richtige Position zu bringen.
als Image schwebt das Bild ja praktisch über den Zellen
mit Picture.Insert wäre das Bild einer bestimmten Zelle zugeordnet, und würde beim kopieren dieser Zelle mitkopiert werden
PS das scheint mir noch wichtig:
Die Symbole werden mit einer komplizierten Routine ausgelesen, die ich nicht so richtig durchschaue.
Am Ende steht mir eine Zahl (Handle) zur Verfügung, die ich der Picture-Eigenschaft des Image-Objekts zuweisen kann. Ob das bei Picture.Insert auch funktioniert, bleibt zu klären.
ActiveSheet.OLEObjects(BildNr).Object.Picture = Handle_vom_Symbol das funktioniet
Wie muss der Befehl lauten, wenn das Bild mit Picture.Insert erstell wurde ?
Schon mal vielen Dank für deine Mühe
Gruß Frank
(ICQ 463165142)
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige