Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Bilder einer bestimmten Zelle zuweisen





Frage

Hallo und guten Tag, ich habe hier schon eine Weile gesucht, aber keinen Beitrag gefunden, der auf mein Problem passt. Also poste ich mal mein Problem und hoffe, dass mir jemand helfen kann. Ich habe ein Excel-Sheet (Hulls) indem Daten für ein anderes Sheet (Viewer) der gleichen Arbeitsmappe vorhanden sind. Die reine Datenübernahme von Hulls zu Viewer funktioniert auch. Jetzt möchte ich aber, dass aus einem externen Verzeichnis Bilder in die Zelle "A2" vom Sheet Viewer übernommen werden. Das soll dann geschehen, wenn man im Sheet "Viewer" an der Auswahlbox der Zelle "B1" (Daten hierzu aus Sheet "Hulls" $D$4:$D$253) einen Eintrag auswählt. Ich habe die Bilder (BMP) gleich wie die Einträge in der Auswahlliste genannt jedoch mit einem vorangestellten "VPL" (also z.B. "VPL30.BMP"). Kann man hiermit nachvollziehen, was in meinem "wirren" Hirn vorgeht? Wenn nicht versuche ich gerne weitere Info´s zu geben oder die xls-Datei zu mailen. Eigentlich wollte ich ja die Exel-Datei "Hulls" als Datenbank nutzen um ein Web-Formular zu erstellen, so dass man direkt im Web die Auswahl treffen kann, aber daran bin ich endgültig gescheitert und weiß nicht mehr weiter. Wenn hierzu jemand eine Lösung weiß, wäre ich mit Abstand der glücklichste Mensch hier in Deutschland und meine Frau würde sich die Scheidung aufgrund meiner letzten PC-Sessions evt. noch einmal überlegen. ;-) Schon jetzt herzlichen Dank, dass ihr euch die Mühe gemacht habt den Beitrag bis zum Ende zu lesen. Viele Grüße Holger P.S.: Hier findet ihr die Screenshots zu meinen Sheets. Viewer:[url]http://www.pfalz-board.de/stuff/Viewer.jpg[/url] Hulls:[url]http://www.pfalz-board.de/stuff/Hulls.jpg[/url]

Antwort 1 von Hajo_Zi

HAllo Holger,

schaue doch mal auf meine Hompage Seite VBA, Bilder einfügen. Vielleich findest Du dort einen Ansatz. Für witergende Fragen wäre die Version intressant.

Gruß Hajo

Antwort 2 von HoBa

Hallo Hajo,

ich habe Excel XP. Leider habe ich jetzt keine Zeit, aber werde mich dann auf Deiner Seite mal nach einber Lösung umsehen.

Cu Holger

Antwort 3 von HoBa

Hi Hajo,

ich habe mich mal durch Deine Seite gewuselt und eine Menge super Sachen gefunden.

Leider kann ich Dein Macro Datensatz_Bild nicht für meine Zwecke ummodeln (kenne mich ja auch nicht besonders gut damit aus). Irgendwie blicke ich da nicht durch, wie ich die Verbindung zu meiner Listbox hin bekomme und damit die richtigen Verknüpfungen.

Vielleicht kann mir jemand anderes noch helfen?

Cu Holger

Antwort 4 von Hajo_Zi

Hallo Holger,

gut ich interpretiere das mal so, das ich nicht mehr helfen soll. Ich kann damit Leben.

Gruß Hajo

Antwort 5 von HoBa

Hallo Hajo,

n e i n , so war das nicht gemeint. Nur kann ich Dein Macro nicht so ändern, dass es passt. :-(

Ich kenne mich einfach zu wenig damit aus. Wäre toll, wenn ich trotzdem Hilfe bekäme.

Sorry, wenn das falsch rüber gekommen ist.

Cu Holger

Antwort 6 von Hajo_Zi

Hallo Holger,

Du hast nur JPG Dateien in einem Excel-Forum hochgeladen. Wer soll das nachbauen und wer soll da auf den Bildern erkenen das da irgendwo Steuerelemente sind.

Gruß Hajo

Antwort 7 von HoBa

HiHo,

hier die Datei ... http://www.pfalz-board.de/stuff/hulls31_v17_web.xls.

Die dazugehörigen Bilder werden dann im gleichen Verzeichnis liegen (oder wenn es geht im Unterordner: "images")

Brauchst Du auch die Bilder?

Cu Holger

Antwort 8 von Hajo_Zi

Hallo Holger,

nein die Bilder brauche ich nicht, da suche ich mir welche. Aber mit diesem Problem kann ich mich nur am Abend mit befassen. Das kann aber einen kleinen Augenblick dauern. Ich werden mal Heute am Abend reinschauen und sehen ob mir das Verfahren klar ist.

Gruß Hajo

Antwort 9 von HoBa

Hallo Hajo,

gar kein Problem, ich tüfftele jetzt schon eine ganze Weile daran und komme einfach nicht mehr weiter. Es ist toll, dass Du mir helfen möchtest. :-)

Bis denne dann

Holger

Antwort 10 von Hajo_Zi

Hallo Holger,

ich habe mir jetzt mal die Datei angesehen. Schreibe doch mal was zum Ablauf. Was muß ich machen und was soll passieren.

Gruß Hajo

Antwort 11 von HoBa

HiHo,

im Sheet "Viewer" wird in der Zelle B1 (grün) eine Zahl eingegeben (kannst Du ja mal probieren). Diese Zahl wird im Sheet "Hulls" in Spalte "C" gesucht. Dann werden die Daten der entsprechenden Zeile bei "Hulls" in die jeweiligen Zellen bei "Viewer" übertragen.

Das Bild zur Zahl in B1 soll in Zelle A2 (großes schwarzes Feld) importiert werden. Das ist eigentlich der einzige Knackpunkt, der jetzt von vorhanden ist. Die Bild-Daten sind folgendermaßen benannt. Bild zur Zahl 30 heißt: "VPL30.BMP und zu 3 VPL3.BMP, usw.

Idealer Weise würde ich noch gerne kleine Bilder für die Werte im Sheet "Viewer" Zellen E17, G17, I17, K17 & M17 in die Zellen F17, H17, J17, L17 & N17 importieren. Da muss ich mir aber noch Gedanken machen, wie ich die Einträge ggf. teilen kann, wenn zwei Werte in einer Zelle stehen. Z.B. ist der Wert: "T C1" eigentlich ein Bild für "T" und eines für "C1" (siehe Erklärungen unter der Tabelle.

Soweit alles klar oder sind noch Fragen?

Schon mal jetzt ganz ein ganz großes DANKE für Deine Mühen. :-)

Cu Holger

Antwort 12 von Hajo_Zi

Hallo Holger,

der erste Teil ist schon zu 90% gelöst. Deinen schwarzen Kasten habe ich entfernt und die Zellen schwarz gemacht..
Wenn der zweite Teil klar ist, melde Dich wieder ich baue das dann noch ein.
Die Datei lade ich am Abend gegen 18:00 Uhr hoch und poste dann den Link.

Gruß Hajo

Antwort 13 von Hajo_Zi

Hallo Holger,

hier der Link
Link zur Datei

Gruß Hajo

Antwort 14 von HoBa

Hallo Hajo,

also erste Sahne, was Du da gemacht hast. Funktioniert ja supertoll. :-)

Bzgl. meines 2. Problems habe ich mich entschlossen das vorerst so zu lösen, dass ich für jede Kombi-Möglichkeit (es gibt ja nicht so viele) ein Bild zu machen. Wenn Du so nett wärst, dass auch noch einzubauen wäre es perfekt. Die Namen der Bilder würden dann so heissen wir die Funktionen die Angezeigt werden mit der Endung .jpg. Also z.B. Tc1.jpg oder AT.jpg usw. Sonst muss ich bei "Hulls" ja zu viele Spalten bei den Levels einfügen. :-(

Ist klar was ich meine?

Ansonsten kannst Du gerne alle Macros (Module) aus der Datei entfernen, die nicht zu Deinem gehören, denn es sind die kläglichen Reste von meinen Versuchen.

Cu Holger

Antwort 15 von Hajo_Zi

Hallo Holger,

Du hast mal mehere Zellen aufgeführt
E17, G17, I17, K17 & M17 in die Zellen F17, H17, J17, L17 & N17
soll neben jeder dieser Zellen ein Bild?
die Bilder sind aber erheblich kleiner als die oberen?
Die Bilder sind abhängig von B1?
Liegen die Bilder eigentlich schon in der richtigen Größe vor?
Sie liegen im gleichen Ordner?

Gruß hajo

Antwort 16 von HoBa

Hi Hajo,

1. Ja, die Bilder sollen in die jeweilige Nachbarzelle (also dort, wo noch frei ist). Immer die rechte Zelle unter den Level-Spalten: F17, H17, J17, L17 & N17

2. Ja, die Einzel-Bilder werden 25*25 Pixel groß werden. Die Höhe ist jeweils also immer 25 Pixel.

3. Die Bilder sind abhängig von den Angaben der Zellen: E17, G17, I17, K17 & M17

4. Jupp, die werde ich dann so erstellen, also max. 25 Pixel hoch und 25, 50 oder 75 Pixel breit.

5. Die werden auch im gleichen Ordner liegen oder kann man alle Bilder auch in einem separaten Verzeichnis (z.B. "images") legen?

6. Gibt es eine Möglichkeit, dass Excel die Angaben in den Spalten V bis Z (Sheet "Hulls") ausliest und Angaben mit Leerzeichen (z.B. "c1 T) automatisch trennt in "c1" und "T" und diese Angaben dann in die jeweilige Zelle E17, G17, I17, K17 & M17 im Sheet "Viewer" einfügt. Dort könnte man dann die Bilder Einzel den Angaben zuordnen. Das würde mich flexibler machen.

Cu Holger

Antwort 17 von Hajo_Zi

Hallo Holger,

man reicht den kleinen Fiinger und der Arm ist ab.

zu 1 kein Problem
zu 2 kein Kommentar
zu 3 die Zellen F17, H17, J17, L17 & N17 nicht mehr
zu 4 vereinfacht den Code, das obere Bild wird immer mit Höhe 94 eingefügt Egal wie Originalhöhe

zu 5 es ist fast alles möglich, Du mußt es nur schreiben was Du willst. Ich baue die Struktur auf meinen Rechner nach, da min. 90% meiner erstellten Code von mir getestet werden

zu 6 nur Bahnhof, in V bis Z sind doch nur paar Zellen gefüllt. Also das mußt Du genauer erklären. Bedenke immer ich sehe Deine Tabelle das erste mal und arbeite noch nicht solange wie Du damit. Geschweige den verstehen wozu das gut ist.

Gruß Hjao

Antwort 18 von HoBa

Hallo Hajo,

zu Finger und Arm: Jupp, das ist richtig. Ich merke, dass ich langsam größenwahnsinnig werde ;-)

Wenn es Dir zu viel wird, dann sage es einfach. Ich werde das sicherlich verstehen. Habe nur so viele Ideen im Kopf ... :-(

zu 3: Die Anzeige der Bilder in den rechten Zellen (F17, H17, J17, L17 & N17) richtet sich nach den Angaben in den linken Zellen (E17, G17, I17, K17 & M17), also jeweils die linke Nachbarzelle liefert die Angaben welche Bilder in der rechten Zelle stehen sollen. Diese Angaben (Zellen E17, G17, I17, K17 & M17) kommen aus dem Sheet "Hulls" Spalten V bis Z. Jedoch sind dort (wie Du bereits sagtest) nicht alle Zellen belegt, was auch Absicht ist. Wenn es einfacher ist, dann können auch die Zellen unter den Levels (also E17 & F17, G17 und H17,...) wieder verbunden werden und die Bilder direkt aus "Hulls" Spalten V bis Z ausgelesen werden.

Wenn Du möchtest, dann kannst Du mir auch eine Telefon-Nr. an hajo@wt-pfalz mailen und ich rufe Dich kurz an, um dir den Sinn zu erklären. ;-)

Viele Grüße

Holger

Antwort 19 von Hajo_Zi

Hallo Holger,

also interpretiere ich es mal das wieder beide Gruppen aktiv sind.
Telefon Nr. gebe ich nicht raus.
Falls Gespräch gewünscht mache ich die üüber Skype unter meinem Benutzernamen.
Deine Aufgabe habe ich auf meine Homerechner verlagert. Für Heute ist Feierabend, die Lösung geht morgen weiter.

Gruß Hajo

Antwort 20 von HoBa

Hallo Hajo,

> also interpretiere ich es mal das wieder beide
> Gruppen aktiv sind.

Verstehe ich jetzt nicht.

> Telefon Nr. gebe ich nicht raus.

O.k., kann ich verstehen, war auch nur ein Angebot.

> Falls Gespräch gewünscht mache ich die üüber
> Skype unter meinem Benutzernamen.

Skype wollte ich eigentlich nicht extra installieren, würde es aber machen, wenn es Dir die Arbeit erleichtert.

> Deine Aufgabe habe ich auf meine Homerechner
> verlagert. Für Heute ist Feierabend, die Lösung geht
> morgen weiter.

Alles klar, schönen Feierabend. Wie ich Morgen Zeit habe, weiß ich noch nicht genau, aber werde versuchen so schnell als möglich zu antworten.

Einen schönen Abend

Holger

Antwort 21 von HoBa

Hallo Hajo,

ich bin es noch einmal ... ;-)

Habe jetzt selbst etwas versucht zu ändern, aber komme nicht mehr weiter. Ich hoffe Du reisst mir jetzt nicht den Kopf ab. ***Mal-in-Deckung-geh***

Irgendwie aktuallisiert Excel das Bild nicht, wenn ich eine neue Eingabe aus der Listbox mache. Die aktuelle Datei liegt hier: http://www.pfalz-board.de/stuff/hulls31_v17_web.xls

Ich wollte die Eingabe etwas besser machen und nicht über die Zahlen (Zelle B1) sondern über den Namen (verbundene Zellen C1 bis N1) machen.

Ausserdem habe ich versucht in der Listbox die Leerfelder raus zu bekommen, was mir nicht geglückt ist.

Naja, mal warten, was Du dazu sagst.

Cu Holger

P.S.: Gibt es eigentlich ausser Dir niemand, der mir helfen kann/will? Oder ist es hier Usus, dass immer nur einer hilft (damit keine Sachen doppelt gemacht werden)?

Antwort 22 von Hajo_Zi

Hallo Holger,

was mir auffällt ist keine Daten, Güligkeit mehr. Wo ist das Feld? Es ist keine Listbox, wie Du immer schreibst.
Ich füge das Bild einfügen für alle Zellen ein,
E17, G17, I17, K17 & M17 in die Zellen F17, H17, J17, L17 & N17
falls ich das DropDownfeld wieder finde.

Zu Deinm PS.
Wir haben uns nun schon 21 Beiträge über das Problem unterhalten, wer soll sich da noch einarbeiten. Jeder hat seinen eigenen Prorammstil, da müßte man sich auch erst einarbeiten.

Gruß Hajo

Antwort 23 von HoBa

Guten Morgen Hajo,

> was mir auffällt ist keine Daten, Güligkeit mehr. Wo > ist das Feld?

Habe ich das aus Versehen gelöscht? Ich habe eigentlich nur die Zellen B1 und C1 (Viewer) getauscht, so dass die Auswahl jetzt über C1 erfolgen sollte.

> Es ist keine Listbox, wie Du immer schreibst.

Mit "Listbox" meinte ich das Drop-Downfeld (jetzt C1) dessen Daten aus der Spalte "P" kommen. Sorry für meine Laienhaften Ausdrücke.

> Ich füge das Bild einfügen für alle Zellen ein,
> E17, G17, I17, K17 & M17 in die Zellen F17, H17,
> J17, L17 & N17
> falls ich das DropDownfeld wieder finde.

Ist jetzt die verbundenen Zellen C1 bis N1

> Zu Deinm PS. ...

Ja da hast Du sicherlich Recht

Cu Holger

Antwort 24 von Hajo_Zi

Hallo Holger,

vorher waren Deine Bilder mit Zahlen beschriftet und der Bildnahme war ""VPL" + die Zahl +".Bmp"
Wie baut sich jetzt der Name auf?
Ändere im Code unter der Tabelle die Zeile
If Target.Address = "$B$1" Then
in
If Target.Address = "$C$1" Then

Gruß Hajo

Antwort 25 von HoBa

Moin Moin,

> vorher waren Deine Bilder mit Zahlen beschriftet und
> der Bildnahme war ""VPL" + die Zahl +".Bmp"
> Wie baut sich jetzt der Name auf?

Der Name ist gleich geblieben.

> Ändere im Code unter der Tabelle die Zeile
> If Target.Address = "$B$1" Then
> in If Target.Address = "$C$1" Then

Das habe ich gemacht, aber die Bilder aktuallisieren sich nicht. Erst wenn ich die Zahl manuell bei B1 eingeben kommt das neue Bild. :-(

Cu Holger

Antwort 26 von Hajo_Zi

Hallo Holger,

woher soll Excell wissen das der Eintrag
"COBRA_CLASS_GUNSHIP___________" das Bild 45 oder 37 ist, oh ich merke gerade ich weis es auch nicht welches Bild es ist und ich soll das Programm schreiben.

Gruß Hajo

Antwort 27 von HoBa

Hallo Hajo,

die Lösung des Problemes findet Excel bzw. Du im Sheet "Hulls". Dort steht in der Spalte A (und D) der Name des Schiffes. Das dazugehörige Bild (Pic) steht in Spalte C der gleichen Zeile. Die Nummer des Bildes wird auch in Zelle B1 (Viewer) ermittelt und angezeigt. Reicht dies zum Programmieren?

Cu Holger

Antwort 28 von Hajo_Zi

Hallo Holger,

das ausgewählte Wort ist nicht eindeutig. Einige kommen mehrfach vor und ich prüfe jetzt nicht ob bei allen das gleiche Bild angesprochen wird.
Falls Ja warum müssen Sie mehrmals aufgeführt werden?

Gruß Hajo

Antwort 29 von HoBa

Hallo Hajo,

es ist immer das gleiche Bild dem gleichen Schiff zugeordnet, egal wie oft das Schiff vorkommt. Es ist ein Spiel, bei dem es 11 Rassen gibt und manche Rassen auch Schiffe einer anderen Rasse haben. Es gibt auch Schiffe, die jede der 11 Rassen hat.

Wenn es einfacher ist, dann kann man auch die doppelten Schiffe im DropDown-Menü weglassen.Das wäre sogar noch wesentlich besser, denn dann würde das DropDown wesentlich überschaubarer.

Cu Holger

Antwort 30 von Hajo_Zi

Hallo Holger,

ich habe es jetzt eigentlich umgesetzt. DEine Veränderungen zum ersten Punkt waren recht umfangreich.
Aber wie ich Dich kennen gelernt habe ist dies bestimmt nicht richtig.
2. Punkte würden mir da auf die schnelle noch einfallen:

- die Werte aus Spalte A Tabelle Hulls sollten vielleicht noch sortiert angezeigt werden

- für die Bilder der Zellen "E17", "G17" , "I17", "K17", "M17" benutze ich jetzt den Zellinhalt. Es sind ja Bilder vom Typ JPG

Gruß Hajo

Antwort 31 von HoBa

Hallo Hajo,

> DEine Veränderungen zum ersten Punkt waren recht
> umfangreich.

UUooops, dachte nicht, dass es so viel schwieriger wird.

> Aber wie ich Dich kennen gelernt habe ist dies
> bestimmt nicht richtig.

Dazu müsste ich zuerst die Tabelle sehen. Wieder gegen 18:00 Uhr? Bin ich wirklich so ein undankbarer Miesepeter?

> - die Werte aus Spalte A Tabelle Hulls sollten
> vielleicht noch sortiert angezeigt werden

Das wäre ein Sahnetrüffel auf der Torte :-) ... Jedoch sollte der Aufbau des Sheet "hulls" nicht verändert werden. Die Sortierung müsste dann irgendwo anders ablaufen, was aber kein Problem darstellen würde.

> - für die Bilder der
> Zellen "E17", "G17" , "I17", "K17", "M17" benutze ich
> jetzt den Zellinhalt. Es sind ja Bilder vom Typ JPG

Ja, es sind Bilder vom Typ JPG. Wie sollten die benannt werden? So wie ich oben vorgeschlagen habe (entsprechend den Angaben - z.B. c1.jpg, T.jpg)?

Vielen herzlichen Dank

Cu Holger

Antwort 32 von Hajo_Zi

Hallo Holger,

undankbar habe ich ja nicht geschrieben. Es war bisher aber immer so das noch eine Veränderung war.

Umfangreich war es da ich es jetzt über ein Steuerelement realisiert habe und da ist alles über VBA.

Ja es wird dann wohl wieder gegen 18:00 eher 19:00 Uhr. Die Sortierung muß ich jetzt erst noch testen.

Bildnamen entsprechend Zellinhalt, kein übersetzen wie in C1.

Gruß Hajo

Antwort 33 von Hajo_Zi

Hallo Holger,

ich habe paar Bemerkungen in die Datei geschrieben.

Link zur Datei


Gruß Hajo

Antwort 34 von HoBa

Hallo Hajo,

super ... :-) ... Ich habe zwar noch das Problem, dass Excel meine 25*25 Pixel große Bilder unten viel größer als die Zelle anzeigt und doppelte oder dreifache Bilder 25*50 oder 25*75 Pixel große Bilder alle quadratisch (und zu groß) darstellt, aber da kann auch ich versuchen eine Lösung zu finden. Du hast ja schon soooooooooo viel getan. Falls ich es nicht schaffe oder Du Lust hast es selbst zu machen, lesen wir uns hier wieder, o.k.? ;-)

An dieser Stelle nochmals ein

G A N Z G R O S S E S D A N K E !!!

Cu Holger

Antwort 35 von Hajo_Zi

Hallo Holger,

dazu brauche ich aber die Bilder oder paar. Du mußt mir nur schreiben was ich auswählen soll.

Gruß Hajo

Antwort 36 von Hajo_Zi

Hallo Holger,

vielleicht reicht es auch unten die Zeile zu ändern in

With ActiveSheet.Shapes.AddPicture(StBild, True, True, Range(VaZelle(InI)).Offset(0, 1).Left, _
Range(VaZelle(InI)).Offset(0, 0).Top, 25, 25)

Gruß Hajo

Antwort 37 von HoBa

Hi Hajo,

ich habe den Fehler (glaube ich) schon gefunden. Das Macro "formatiert" die unteren Bilder mit der gleichen Größe wie die oberen:

´           weitere Bilder einfügen, keine Anpassung der Größe
            VaZelle = Array("E17", "G17", "I17", "K17", "M17")
            For InI = 0 To UBound(VaZelle)          ´ Schleife vom ersten bis letzten Wert
                If Range(VaZelle(InI)) <> "" Then   ´es steht was in derZelle
                    StBild = ThisWorkbook.path & "\" & Range(VaZelle(InI)) & ".JPG"
                    If Dir(StBild) <> "" Then       ´ Bild ist vorhanden
                        With ActiveSheet.Shapes.AddPicture(StBild, True, True, Range(VaZelle(InI)).Offset(0, 1).Left, _
                            Range(VaZelle(InI)).Offset(0, 0).Top, DoBreite * DoBildhoehe / DoHohe, DoBildhoehe)
                        End With


Kann das sein? Jedenfalls sind die Bilder alle gleich groß ...

Cu Holger

Antwort 38 von HoBa

Moin Moin,

Happy - Happy - Happy :-)

Antwort 36 war die Lösung, den Rest bekomme ich dann alleine hin (hoffe ich jedenfalls).

Kann ich etwas Gutes für Dich tun?

Cu Holger

Antwort 39 von Hajo_Zi

Hallo Holger,

ich habe den Download geändert.

Gruß Hajo

Antwort 40 von HoBa

Jupp,

jetzt ist es perfekt. Werde die Bildgröße dementsprechend ändern.

Nochmals vielen Dank :-)

Cu Holger