Hallo,
ich bin neu hier.
Habe vorher schon viel von "aussen" gelesen und dacht ich melde mich mal an, da ich auf meine spezielle Frage bisher keine Antwort gefunden habe.
Sollte es eine wirklich einfache Lösung geben bitte nicht direkt auf mich einknüppeln.
Ich habe wirklich gesucht!
Bitte mit Link auf die Antwort verweisen, Danke
Folgende Frage:
Im Sheet Graphics, bei mir an 3. Stelle habe ich in Zell B2 einen Smilie eingefügt.
1.Dieser soll in der Tabelle unsichtbar werden, damit der User diese nicht sieht.(aber das ist ein anderes Thema)
2. Soll die Grafik wenn im Sheet Statistics( Blatt 2) in Zelle G3 ein bestimmter Wert erreicht ist der Smilie aus Graphics.B2 in z.B Statistic.G4 kopiert werden.
Ist das möglich?
Hoffe ihr versteht was ich meine.
Ich habe extra Grafiken aus OO Calc benutzt, falls es einen Unterscheid macht.
Ich bin kein Makro Experte, daher wäre ich für einfache Lösungen dankbar.
Aber wenn es ein Marko sein soll, bin ich bereit mich dadurch zu denken.
Dank und Gruß
EDIT:
ich habe folgendes Makro gefunden und angepasst an meine Wünsche:
REM ***** BASIC *****
sub GrafikausSheet3nach2
Doc = thisComponent
mySheet = Doc.Sheets(2)
Page = mySheet.drawPage
Grafik= doc.createInstance("com.sun.star.drawing.GraphicObjectShape")
Grafik = Page.getbyIndex(0)
NeueUrl=Grafik.GraphicURL
NewGrafik=doc.createInstance("com.sun.star.drawing.GraphicObjectShape")
Dim Point As New com.sun.star.awt.Point
Dim Size As New com.sun.star.awt.Size
Point.x = 1000
Point.y = 1000
Size.Width = 5000
Size.Height = 3000
NewGrafik.GraphicURL=NeueUrl
NewGrafik.Position=Point
NewGrafik.Size=Size
mySheet = Doc.Sheets(1)
Page = mySheet.drawPage
Page.add(NewGrafik)
end sub
Die dirty version wäre eine Abfrage nach den Bedingungen und alle gewünschten Grafiken je auf eine Seite, aber das macht mir die Arbeitsmappe zu groß.
Überlegung war, die Grafiken mittels Namen oder über die exakten positionen in x-y Koordinaten anzusprechen.
Geht das? Koordinaten sicherlich, aber Namen wäre natürlich super übersichtlich.
Allerdings weiß ich noch nicht, wie ich die Koordinaten auslese.
Sind es einfach 1/10 mm Positionskoordinaten?
( Ja, gerade mal über ''Position und Größe'' kontrolliert, es sind 1/10mm)
Dann bastel ich mal
EDIT2:
Jedes Bild, dass in ein Sheet eingefügt wird, kann beliebig verändert werden in Position und Größe.
In der Reihenfolge in der es eingefügt wird, wird es indiziert. Es beginnt mit 0!!
In Zeile 6 kann ich also jedes Bild ansprechen, welches ich möchte.
Grafik = Page.getbyIndex(0)
Ändere ich die Prozedur so, dass ich statt der 0 ein x einfüge und x aus einer Zelle in meinem Arbeitsblatt einlesen lasse, kann ich beliebige Bilder aus einem hinteren Blatt in ein vorderes erscheinen lassen.
Ändert man die Zielkoordinaten in Zeile 11 und 12
Point.x = 1000
Point.y = 1000
in z.B.
Point.x = 1000
Point.y = 4000 ( height ist 3000)
dann erscheint das Bild direkt unter dem vorherigen.
Das Makro löscht keine Bilder! Sie werden überschrieben wenn nötig.
Daraus werde ich mir meine Grafikanzeige basteln, wenn keiner eine bessere Lösung kennt.
Hoffentlich hilft es denen die wie ich keine Markoexperten sind.
Gruß
Bjoern
_________________
Moderation: Thema von OOo Calc nach OOo Basic und Java verschoben, wo alle Themen zur individuellen Programmierung hingehören.—lorbass, Moderator
Grafik an Funktion binden
Moderator: Moderatoren
-
- Beiträge: 8
- Registriert: Di, 11.11.2014 22:07
Re: Grafik an Funktion binden
Hallo nochmal
ich hab es über getbyname probiert um den zelleninhalt auszulesen, aber ich stoße immer wieder auf eine Unstimmigkeit mit dem Index.
Im Prinzip soll I aus Zelle I2 gelesen werden in dem Sheet Statistik
SSourceString müsste den Inhalt an die Variable I übergeben.
bzw ich hatte sSourceString durch I ersetzt.
Aber ich denke ich brauch für den Index kein Value sondern ein String der als Index erkannt werden kann, oder?
Bjoern
- In Zeile 6 kann ich also jedes Bild ansprechen, welches ich möchte.
Grafik = Page.getbyIndex(i)
ich hab es über getbyname probiert um den zelleninhalt auszulesen, aber ich stoße immer wieder auf eine Unstimmigkeit mit dem Index.
Im Prinzip soll I aus Zelle I2 gelesen werden in dem Sheet Statistik
SSourceString müsste den Inhalt an die Variable I übergeben.
bzw ich hatte sSourceString durch I ersetzt.
Aber ich denke ich brauch für den Index kein Value sondern ein String der als Index erkannt werden kann, oder?
- osheets = thiscomponent.sheets
oSourceSheet = osheets.getbyname("Statistik")
oSourceCell = oSourceSheet.getcellbyposition(8,1)'I2
sSourceString = oSourceCell.value
Bjoern
Re: Grafik an Funktion binden
Nein, Dein Code ist völlig richtig. Vielleicht stimmt der Zellinhalt nicht, der muss natürlich ein Zahlen-Wert und kein String sein.Aber ich denke ich brauch für den Index kein Value sondern ein String der als Index erkannt werden kann, oder?
Meinethalben kannst Du ja statt:
Code: Alles auswählen
sSourceString = oSourceCell.Value
Code: Alles auswählen
sSourceString = VAL(oSourceCell.String)
richtiger ist das aber nicht, einzig wandelt es den falschen Zellinhalt ggf. um.
Gruß
Stephan
-
- Beiträge: 8
- Registriert: Di, 11.11.2014 22:07
Re: Grafik an Funktion binden
Hallo
ich hatte eine x-bielibige Zelle ohne spezielle Formatierung im Arbeitsblatt gewählt.
Hatte mich gewundert, dass es nicht klappt.
Da ich die Grafikindexe nicht hochzählen konnte, konnte ich keine Schleife um setzen und musste da ein bisschen improvisieren.
Problem hatte ich dann hier mit einer anderen Funktion (Transparent) umgangen:
viewtopic.php?f=18&t=64879&p=250507#p250507
Stylistisch sieht es aber nach pfuscherei aus und macht mich nicht ganz glücklich, auch da bei Start die Objekte erst ausgeblendet werden und dann Rahmen kurz angezeigt werden. Habe ich mit einem Rahmen der es verdeckt gelöst...Auch kein Meisterstück.
Daher möchte ich gern diese Funktion nutzen können.
Danke
und Gruß
Bjoern
ich hatte eine x-bielibige Zelle ohne spezielle Formatierung im Arbeitsblatt gewählt.
Hatte mich gewundert, dass es nicht klappt.
Da ich die Grafikindexe nicht hochzählen konnte, konnte ich keine Schleife um setzen und musste da ein bisschen improvisieren.
Problem hatte ich dann hier mit einer anderen Funktion (Transparent) umgangen:
viewtopic.php?f=18&t=64879&p=250507#p250507
Stylistisch sieht es aber nach pfuscherei aus und macht mich nicht ganz glücklich, auch da bei Start die Objekte erst ausgeblendet werden und dann Rahmen kurz angezeigt werden. Habe ich mit einem Rahmen der es verdeckt gelöst...Auch kein Meisterstück.
Daher möchte ich gern diese Funktion nutzen können.
Danke
und Gruß
Bjoern