Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
264to268
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
264to268
264to268
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Bild per Funktion einfügen

Bild per Funktion einfügen
06.06.2003 09:45:29
Michael Werner
Guten Morgen,

ich möchte in eine Excel-Tabelle per Funktion mehrere Bilder einfügen. Dabei möchte ich die einzufügenden Bilder inklusive Pfad in die Tabelle eintragen, die Funktion soll dann das Bild einfügen.
Beispiel:
In A1 steht c:\Bilder\Ball.gif
in eine andere Zelle möchte ich dann die Funktion =ZeigeBild(A1) eintragen und als Ergebnis das Bild sehen.

Die Funktion sieht z.Zt. so aus:

Function ZeigeBild(ByVal BildQuelle As Range) As Object
MsgBox BildQuelle.Value
ZeigeBild = ActiveSheet.Pictures.Insert(BildQuelle.Value).Select
End Function

Die MsgBox zeigt mir auch den Eintrag aus BildQuelle an, als Ergebnis in sehe ich immer nur #WERT!

Als Makro funktioniert das, kann ich aber nicht verwenden, da die Bilder an unterschiedlichen Stellen in der Tabelle stehen sollen, in der Tabelle auch noch andere Einträge stehen und ich deshalb keine Schleife verwenden kann.

Was also ist an der Funktion falsch?

Ich hoffe auf Hilfe und bedanke mich schon mal

Michael


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

Betreff
Datum
Anwender
Anzeige
Re: Bild per Funktion einfügen
06.06.2003 10:55:27
Knut

Eine UDF kann soetwas nicht leisten.
Knut

Re: Bild per Funktion einfügen
06.06.2003 13:51:55
Axel

Hallo,

wie Knut schon schreibt, eine Lösung als Tabellenfunktion scheidet aus, da über Tabellenfunktionen keine Wert- oder Fromatänderungen anderer Zellen oder sonstiger Bereiche des Tabellenblattes vorgenommen werden können.

Du kannst aber folgenden Umweg gehen.

Setze einfach einen Button (Schaltfläche) aus der Symbolleiste Formular auf das Tabellenblatt und weise dem Button das folgende Makro zu

Wenn Du jetzt die Zelle mit der Pfadangabe selektierst und anschließend den Button betätigst, wird das Bild eingefügt.

Allerdings wird das Bild jetzt genau über die Zelle mit dem Pfad gesetzt.

Gruß
Axel


Anzeige
Re: Bild per Funktion einfügen
06.06.2003 14:13:39
Michael Werner

Hallo Axel,

wie jetzt: Eine Funktion kann keine Wertänderungen anderer Zelle vornehmen? Das glaube ich ja nicht. Ich kann doch eine Funktion AddiereZahlen schreiben, der ich einen Bereich von Zellen übergebe und die mir das Ergebnis zurückgibt. Der Aufruf ist dann z.B. =AddiereZahlen(A1:A3) und als Ergebnis kriege ich die Summe in der Zelle, in der ich die Funktion aufrufe. (Okay, ich werde dafür die Summenfunktion von Excel nehmen ;-) ).
Also muss es doch auch irgendwie möglich sein, in A1 einen Dateinamen zu schreiben und in B1 =ZeigeBild(A1) einzutragen und als Ergebnis das Bild zu sehen. Oder stehe ich da jetzt völlig auf dem Schlauch?

Vielleicht antwortest Du ja noch mal (oder jemand anderes).

Michael

Anzeige
Re: Bild per Funktion einfügen
06.06.2003 22:07:26
Axel

Hallo Michael,

ich schreibe ja auch explizit andere Zellen. Natürlich kannst Du über eine Tabellenfunktion den Wert der Zelle ändern, die die Tabellenfunktion enthält.

Teste es einfach aus. Übernehme die folgende einfache Funktion in ein Standardmodul und rufe die Funktion in Zelle A1 auf, also =Test()

Die Funktion wird bei der Anweisung Range("B1") = 1 kommentarlos terminiert, die MsgBox niemals ausgegeben und in A1 steht anschließend #WERT!

Wenn Du es nicht glaubst, lass es letztlich im Einzelschritt-Modus des Debuggers laufen.

Über Tabellenfunktionen ist es eben nicht möglich, Werte, Formate und ähnliches ANDERER Zellen zu ändern.

Wenn das möglich wäre, käme es ggf. zu rekursiven Neuberechnungen des Blattes, die Excel dann nicht mehr handeln kann.

Jetzt alles klar?

Gruß
Axel



Anzeige
Re: Bild per Funktion einfügen
10.06.2003 08:26:19
Michael Werner

Hallo Axel,

das ist mir klar und ich glaube es Dir auch. Ich will das ja auch nicht. Was ich will ist in B1 einen Eintrag =ZeigeBild(A1), das Bild soll dann auch in B1 angezeigt werden (A1 enthält nur Pfad und Dateinamen des Bildes). Warum das nicht geht, dass will ich wissen (bzw. wie das geht).

Gruß
Michael

Re: Bild per Funktion einfügen
10.06.2003 17:14:05
Axel

Hallo Michael,

wenn Dir doch alles klar ist, was ist dann noch unklar?

Du kannst Deine Anforderung NICHT über eine Tabellenfunktion lösen.

Ich habe Dir doch eine vernünftige und funktionierende Lösung in diesem Thread angeboten.

Hast Du die getestet?

Was spricht dagegen?

Axel


Anzeige
Re: Bild per Funktion einfügen
10.06.2003 17:30:42
Michael Werner

Hallo Axel,

Dein Makro kann ich aus zwei Gründen nicht verwenden.
1. Ich habe mehrere Bilder in dem Blatt müsste dann das Makro mehrfach aufrufen; das möchte ich nicht.
2. Ich möchte das Bild eben nicht in der Zelle haben, in der der Dateiname steht.

Was mir noch unklar ist:
Wenn in A1 1 steht und in A2 2, dann kann ich in A3 =Summe(A1:A2) eintragen und in A3 steht dann 3.
Wenn nun in A1 c:\bilder\auto.gif steht und ich schreibe in A2 =ZeigeBild(A1), warum wird dann in A2 nicht das Bild angezeigt? Wo ist da der Unterschied zur Summenfunktion?

Vielleicht sollten wir das per eMail weiterdiskutieren, scheint sonst niemanden zu interessieren. Leider habe ich Deine eMail-Adresse nicht.

Gruß
Michael


Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige