Hallo,
ich möchte in OpenOffice Calc (V3.3) ein Bild in Abhängigkeit eines Zellwertes anzeigen lassen.
Sprich: Wenn Zelle A1=1; dann zeige Bild1
wenn Zelle A1=2; dann zeige Bild2
Hab in etlichen Foren schon gesucht, aber leider keine Lösung gefunden.
ich möchte in OpenOffice Calc (V3.3) ein Bild in Abhängigkeit
eines Zellwertes anzeigen lassen.
Sprich: Wenn Zelle A1=1; dann zeige Bild1
wenn Zelle A1=2; dann zeige Bild2
Hallo Bft.
probiere mal dies aus:
http://www.mail-archive.com/[email protected]/…
Gruß
Reinhard
Hallo Bft.
probiere mal dies aus:
http://www.mail-archive.com/[email protected]/…
Gruß
Reinhard
Vielen Dank für die schnelle Antwort.
Im Prinzip funktioniert das so schon ganz gut.
Aber: Der Verweis bzw der Aufruf des Bildes muss scheinbar in dem gleichen Tabellenblatt geschehen, in dem das Bild angezeigt werden soll, bzw in dem das Suchkriterium steht. Ich weiß leider nicht, in wie fern ich das Makro ändern müsste um dieses bei den Zuweisungen der Bilder mit zu schreiben.
Gravierender allerdings ist, das die Bildzellen sich bei einer neuen Eingabe überlagern. Ich habe dann ein zweites Bild in der gleichen Zelle. Kann man über das Makro evtl das alte Bild zuvor löschen?
Hallo Bft,
Im Prinzip funktioniert das so schon ganz gut.
schon mal gut, ich hatte es nicht geeteset weil ich vorher schon etliches getestet hatte und da nicht mehr wollte und mir dachte testen kannst auch du
Da stand ja was man wo machen muß und insgesamt hat da der Antworter den Eindruck gemacht daß er weiß was er schreibt also fit in OOCalc ist.
Jetzt geht es um die Funktionalität an sich. Soweit ich deine Anfrage noch genau weiß willst du in A1 Zahlen eingeben/auswählen und je nach Zahl soll an einer festen Stelle? ein anderes Bild erscheinen!?
Aber: Der Verweis bzw der Aufruf des Bildes muss scheinbar in
dem gleichen Tabellenblatt geschehen, in dem das Bild
angezeigt werden soll, bzw in dem das Suchkriterium steht. Ich
weiß leider nicht, in wie fern ich das Makro ändern müsste um
dieses bei den Zuweisungen der Bilder mit zu schreiben.
Kan ich jetzt noch nix dazu sagen, muß mir das erstmal nochmal genau ansehen.
Auch aus Interesse, denn da stand doch was das man mit einer Funktion in einer Zelle eine andere ändern kann, das muß ich eh mal nachchecken, denn m.W. geht grad das in Excel nicht.
Gravierender allerdings ist, das die Bildzellen sich bei einer
neuen Eingabe überlagern. Ich habe dann ein zweites Bild in
der gleichen Zelle. Kann man über das Makro evtl das alte Bild
zuvor löschen?
Ja, das kann man, ABER, in OO fehlt mir dazu das Wissen wie man so eine dämliche Grafik anspricht/referenziert
Und, grundsätzlich gibt es zwei Ansätze dein Problem anzugehen.
Entweder wie glaub es in dem Link gemacht wird bei Bedarf das Bild aus der Bilddatei einzufügen.
Ist natürlich ggfs. bei großen Bildern langsam.
Oder aber man fügt gleich in das Blatt alle Bilder auf der gleichen Position ein und versteckst sie alle erstmal.
Je nach eingebener zahl in der einen macht man dann nur das der Zahl zugehörige Bild sichtbar.
Ich schau nochmal was ich für dich tun kann.
Gruß
Reinhard
Hallo Reinhard,
Im Prinzip funktioniert das so schon…
Jetzt geht es um die Funktionalität an sich. Soweit ich deine
Anfrage noch genau weiß willst du in A1 Zahlen
eingeben/auswählen und je nach Zahl soll an einer festen
Stelle? ein anderes Bild erscheinen!?
>>Genau. Ich hab ein Dropdown-Menu in einem Feld, und je nach Auswahl soll an einer festen Stelle an anderes Bild erscheinen.
Aber: Der Verweis bzw der Aufruf des Bildes muss scheinbar in
dem gleichen Tabellenblatt geschehen, in dem das Bild
angezeigt werden soll, bzw in dem das Suchkriterium steht.Kan ich jetzt noch nix dazu sagen, muß mir das erstmal nochmal
genau ansehen.
Auch aus Interesse, denn da stand doch was das man mit einer
Funktion in einer Zelle eine andere ändern kann, das muß ich
eh mal nachchecken, denn m.W. geht grad das in Excel nicht.
>>Wenn ich den Funktionsaufruf des Makros in der Tabelle der Bildzuweisungen mache wird nur #NV ausgegeben.
Gravierender allerdings ist, das die Bildzellen sich bei einer
neuen Eingabe überlagern. Ich habe dann ein zweites Bild in
der gleichen Zelle. Kann man über das Makro evtl das alte Bild
zuvor löschen?Ja, das kann man, ABER, in OO fehlt mir dazu das Wissen wie
man so eine dämliche Grafik anspricht/referenziertUnd, grundsätzlich gibt es zwei Ansätze dein Problem
anzugehen.
Entweder wie glaub es in dem Link gemacht wird bei Bedarf das
Bild aus der Bilddatei einzufügen.
Ist natürlich ggfs. bei großen Bildern langsam.Oder aber man fügt gleich in das Blatt alle Bilder auf der
gleichen Position ein und versteckst sie alle erstmal.
Je nach eingebener zahl in der einen macht man dann nur das
der Zahl zugehörige Bild sichtbar.
>>Alle Bilder einzufügen und wahlweise anzuzeigen wäre auch gut. Ist eine überschaubare Anzahl und die Dateien sind auch nicht so riesig (ca. 10 Stück a ~100KB)
>>Vielen Dank für deine Hilfe
Oder aber man fügt gleich in das Blatt alle Bilder auf der
gleichen Position ein und versteckst sie alle erstmal.
Je nach eingebener zahl in der einen macht man dann nur das
der Zahl zugehörige Bild sichtbar.>>Alle Bilder einzufügen und wahlweise anzuzeigen wäre auch
gut. Ist eine überschaubare Anzahl und die Dateien sind auch
nicht so riesig (ca. 10 Stück a ~100KB)
Hallo Bft,
ich kann immer noch nicht die Grafiken ansprechen.
Gefundene Codes wie dieser:
Sub Main
'Dim x(),i
x = ThisComponent.GetGraphicObjects
For i = 0 To x.Count-1
Next
End Sub
klappen nicht. GetGraphicObjects ist nicht bekannt (OO Calc 3.3.0)
Gruß
Reinhard
Gefundene Codes wie dieser:
Sub Main
'Dim x(),i
x = ThisComponent.GetGraphicObjects
For i = 0 To x.Count-1Next
End Subklappen nicht.
Kenn mich da leider zu wenig aus.
x = ThisComponent.GetGraphicObjects
Kenn mich da leider zu wenig aus.
Hallo Bft,
sorry, meine Antwort war nur in dem Teil für dich bestimmt wo ich indirekt sage ich kann dir nicht helfen weil ich an einem Punkt festhänge.
Welcher Punkt das ist das habe ich eher in der winzigen Hoffnung geschrieben daß andere Mitlesende mir da helfen könnten diesen Punkt zu meistern
Das was du willst ist mir sehr klar und in Excel für mich auch leicht umsetzbar aber openOffice ist/hat eine andere Sprache.
Setze mal gedanklich Excel mit Deutschland gleich und OpenOffice mit Japan.
Ich weiß du bräuchtest einen Hamburger von Mc Kotz. Hier in D. kann ich dir den holen, ich sag ich hätt gerne einen Hamburger und fertig.
In japan in einem Mc Kotz, mal angenommen da gibt es keine Bildchen des Würgzeuges, kriege ich eine Speisekarte mit sehr hübschen Schriftzeichen.
Und wenn ich sage ich hätte gern einen Hamburger so klappt das nicht.
Dabei weiß ich genau den gibts dort auch.
Im Beispiel bleibend, jetzt habe ich im Internet Code gefunden wo quasi drin steht,
der Hamburger heißt in Japan:
„ThisComponent.GetGraphicObjects“
und andere leute hatten damit schon in Japan Erfolg um einen hamburger zu kriegen.
Aber ich nicht
Ich probiere noch eines, wenn das auch scheitert gebe ich erstmal auf wegen Sprachschwierigkeiten mit Openoffice.
Gruß
Reinhard
Hallo Reinhard,
sorry, meine Antwort war nur in dem Teil für dich bestimmt wo
ich indirekt sage ich kann dir nicht helfen weil ich an einem
Punkt festhänge.
Schade, aber trotzdem bis dahin vielen Dank. Hat mich schon ein gutes Stück weiter gebracht.
Welcher Punkt das ist das habe ich eher in der winzigen
Hoffnung geschrieben daß andere Mitlesende mir da helfen
könnten diesen Punkt zu meistern
Vllt findet sich ja noch jmd, der die letzten Ecken runden kann, oder um in deinem Vergleich zu bleiben, die Tomate vom RoyalKäse zu entfernen^^
Zusatz:
Beim ersten Start der Datei kommt noch folgender Fehler:
Basic Laufzeitfehler.
Eigenschaft oder Methode nicht gefunden: CurrentController bzw. ActiveSheet
Funktionen bleiben zwar gegeben, aber man muss diese einmalig bestätigen.
Hallo Bft,
ich habe den Punkt durch Internetrecherche lösen können.
http://www.file-upload.net/download-3722199/GrafikEi…
Im Blatt sind jetzt nur 2 Bilder , kannst ja noch 8 dazutun , die linkere obere Ecke an die gleiche Stelle und testen mit der Combobox in Blatt1 über zelle A5,
Der Code braucht B1 und C1 im Blatt „Hilf“, nicht verändern.
Dort in Spalte A steht die Auswahl in der ComboBox von Blatt 1.
Da kannst du es schon auf deine genaue Bilderanzahl abändern, aber die Combobox kriegt davon nix mit.
Aber das sag ich dir später wie das geht,ist einfach.
Teste erstmal.
Gruß
Reinhard
ich habe den Punkt durch Internetrecherche lösen können.
Teste erstmal.
Hallo Reinhard,
erstmal sorry, dass ich so lang nicht hier war. Aber ist ja auch eher mein Nachteil^^
Entweder ich überseh da was, oder aber das läuft noch nicht.
Wenn ich die Datei aufrufe (aufzurufende Bilder wie autostart.jpg und schaf2.bmp habe ich erstellt) werden sofort beide Bilder geladen und angezeigt. Leider aber unabhängig von der Auswahl Dropdown Tabelle1.A5.
Der Aufruf der Bilder soll ja über die Änderung der Zelle geschehen.
Und wie kann man die Liste der anzuzeigen Bilder ändern. woher weiß man, welches das bild „1“ ist?
Teste erstmal.
Entweder ich überseh da was, oder aber das läuft noch nicht.
Wenn ich die Datei aufrufe (aufzurufende Bilder wie
autostart.jpg und schaf2.bmp habe ich erstellt) werden sofort
beide Bilder geladen und angezeigt. Leider aber unabhängig von
der Auswahl Dropdown Tabelle1.A5.
Der Aufruf der Bilder soll ja über die Änderung der Zelle
geschehen.
Und wie kann man die Liste der anzuzeigen Bilder ändern. woher
weiß man, welches das bild „1“ ist?
Hallo Bft,
nein, der Fehler lag bei mir, ich habe die zwei Bilder verknüpft eingefügt, deshalb fehlten sie dir und es satnd da wohl nur der jeweilige Link.
In OO tue ich mich recht schwer da Objekte anzusprechen, darauf zu referenzieren, in Excel-Vba wäre es ein leichtes die 1 dem Bild Löwe.jpg und 2 dem Bild Giraffe.jpg zuzuordnen oder gleich in der Auswahl Löwe, Giraffe usw. auszuwählen.
All das macht aber nix.
Nimm mal die neue Mappe:
http://www.file-upload.net/download-3733909/GrafikEi…
(Tipp: wenn du bei file-upload runterladen willst so empfiehlt es sich schnell zu sein . Sobald das Fenster erscheint so schnell wie möglich auf das Kästchen [so gtroß wie eine Excelzelle] wo „Download“ draufsteht klicken. Es erscheint unterhalb des Bildschirmmittelpunktes nach rechts versetzt.
Bist du zu langsam mußte erstmal ein Werbefenster liquidieren.
Naja, liegt auch an deinen Werbefensterblockern.
Dann öffne die Mappe. Teste erstmal die Funktionalität mit meinen zwei Bildern durch Auswahl verschiedener zahelen in der Auswahl.
Wenn es so ist wie du möchtest, dann lösche meine beiden Bilder.
Dann, wichtig, schließe die Mappe mit Speicherung und öffne sie wieder neu.
Nun füge nacheinander deine 10 Bilder ein, wenn du die Mappe weitergeben willst nicht verknüpft, ansonsten müßte es auf deinem PC egal sein ob du verknüpfst oder nicht.
Und wie gesagt zieh sie mit ihrer jeweils oberen Ecke auf die gleiche Stelle wenn sie immer an der gleichen Stelle erscheinen sollen ansonsten ist es dem Code egal wo die Bilder stehen.
Dann speichere die Mappe und teste und berichte wenn was nicht klappt.
Gruß
Reinhard
Hallo Reinhard,
nein, der Fehler lag bei mir,…
Ich glaub doch eher bei mir^^
Hatte da noch ein Makro (das aus dem Test vorher) im Hintergrund was auf alle ods.Dateien zugegriffen hat. Das hat wohl auch den Fehler erzeugt.
Teste erstmal die Funktionalität mit
meinen zwei Bildern durch Auswahl verschiedener zahelen in der
Auswahl.
Funktioniert einwandfrei!
Wenn es so ist wie du möchtest,…
Nun füge nacheinander deine 10 Bilder ein,…
Dann speichere die Mappe und teste und berichte wenn was nicht
klappt.
Funktioniert auch mit anderen Bildern, aber
-Die erste Auswahl (1) wird nicht belegt
-Wenn ich die Tabelle kopiere (bräuchte einige Tabellen in der Datei) geht die Funktion völlig verloren. Die eingefügten Bilder werden dann in der kopierten Tabelle angezeigt, lassen sich über eine andere Auswahl allerdings nicht mehr ändern.
Für meine Anwendung müsste ich auch noch wissen wie ich das erweitern kann. Die Auswahl soll nicht die einzige bleiben.
(A1 -> Bilder 1-10; A2 -> Bilder 11-15 etc)
Hallo BFT,
Funktioniert auch mit anderen Bildern, aber
-Die erste Auswahl (1) wird nicht belegt
kein Akt, änder ich später bzw, erklär dir wodran das liegt und du änderst das im Code, keine angst leicht zu verstehen.
Muß jetzt aber mal ne Stunde oder mehr weg vom PC.
Für meine Anwendung müsste ich auch noch wissen wie ich das
erweitern kann. Die Auswahl soll nicht die einzige bleiben.
(A1 -> Bilder 1-10; A2 -> Bilder 11-15 etc)
blende dir wenn noch nicht getan über Ansicht–Symbolleisten die Symbolleiste
Formularsteuerelement ein.
Die habe ich in Excel und OO immer sichtbar weil ich sie häufig brauche.
Dort klickst du auf Entwurfsmodus, das ist dieses Icon mit dem Geodreieck. Dann rechts davon auf das Icon, dann siehst du ein Eigenschaftsfenster, weiß grad nicht wie das bei OO heißt, aber steht ja dran
Nun klickst du auf das Aufwahlfeld, in dem Fenster wählst du Daten.
Dann siehst du wie ich das gemacht habe mit der 1-10 usw.
Gruß
Reinhard
Hallo Bft,
Teste erstmal die Funktionalität mit
meinen zwei Bildern durch Auswahl verschiedener zahelen in der
Auswahl.Funktioniert einwandfrei!
schon mal gut.
Wenn es so ist wie du möchtest,…
Nun füge nacheinander deine 10 Bilder ein,…
Dann speichere die Mappe und teste und berichte wenn was nicht
klappt.Funktioniert auch mit anderen Bildern, aber
-Die erste Auswahl (1) wird nicht belegt
Das liegt an dieser Codezeile:
for i = 2 to Page.Count
„PageCount“ liefert die Anzahl aller, ich sag mal Objekte. auf dem Blatt.
Dazu gehört auch das Auswahlfeld.
Page verteilt den Index von 1 bis X, d.h. das zuerst eingefügte Objekt hat den Index 1, das nächste 2 usw.
Theoretsich könntest du diese Codezeile benutzen
for i = 1 to Page.Count
dann würden alle Objekte durchlaufen. ABER es kommt ein Fehler denn mit den Bildern wird etwas gemacht was man mit einem Auswahlfeld nicht machen darf.
In meiner ersten Mappe hatte ich erst die zwei Bilder eingefügt dann das Auswahlfeld, deshalb satnd da im Code:
for i = 1 to Page.Count - 1
in der nächsten Mappe von mir hatte ich das Auswahlfeld zuerst eingefügt, dann die zwei Bilder, deshalb lautete dann die Codezeile so:
for i = 2 to Page.Count
Natürlich ist das dilletantisch aber ich bin in OO halt nicht fit und freue mich daß ich das überhaupt hingekriegt habe
Eine bessere Lösung würde dann so aussehen im Pseudocode
for i = 1 to Page.Count
If Page(i)=Bild then
oder gleich profihaft (wenn es denn so ginge)
Tabelle1.Bilder.visible=false
tabelle1.Bild(Auswahl zelle A5).visible=true
Aber das sind ungelegte Eier. Achte halt darauf wann du was einfügst
und passe dementsprechend diese For-Codezeile an.
Ist ja schlimm auch nicht, auch wenn du mehrere Auswhlfelder hast, füge die zuerst ein, sagen wir mal 5 Stück, dann brauchst du die zeile nur so zu schreiben
for i = 6 to Page.Count
Dann spielst keine Rolle wieviele Bilder du danach noch eingefügt hast.
-Wenn ich die Tabelle kopiere (bräuchte einige Tabellen in der
Datei) geht die Funktion völlig verloren. Die eingefügten
Bilder werden dann in der kopierten Tabelle angezeigt, lassen
sich über eine andere Auswahl allerdings nicht mehr ändern.
okay, zur Sicherheit du meinst die letzte Mappe die ich hochlud, da kopierst du das Blatt innerhalb der mappe als neues Blatt in der mappe?
Wenn du sagst ja so ist es dann schau ich mir das an.
Wenn du etwas anderes meinst dann beschreib es mir genau.
Gruß
Reinhard
Hallo Reinhard,
Achte halt darauf wann du was
einfügst
und passe dementsprechend diese For-Codezeile an.
Wird getestet
-Wenn ich die Tabelle kopiere (bräuchte einige Tabellen in der
Datei) geht die Funktion völlig verloren. Die eingefügten
Bilder werden dann in der kopierten Tabelle angezeigt, lassen
sich über eine andere Auswahl allerdings nicht mehr ändern.okay, zur Sicherheit du meinst die letzte Mappe die ich
hochlud, da kopierst du das Blatt innerhalb der mappe als
neues Blatt in der mappe?
Wenn du sagst ja so ist es dann schau ich mir das an.
Wenn du etwas anderes meinst dann beschreib es mir genau.
Ich habe aus der Mappe Tabelle1 kopiert und vor Tabelle2 (die ja noch ungenutzt war) eingefügt. Die Funktion war damit verloren und es wurden nur noch alle Bilder die eingefügt worden sind in der kopierten Tabelle angezeigt. Das Auswahlfeld scheint damit auch das gleiche zu sein, vllt hängt das zusammen.
Werde nun erst nochmal deine Tipps umsetzen und testen.
Vielen Dank bis dahin