Aloha liebe Community,
ich suche nach einer Möglichkeit, den Inhalt einer Zelle (in meinem Fall das Kommentarfeld) per Formel automatisch zu übernehmen.
Konkretes Beispiel:
Zellbereich A123:A154 enthält in jeder Zelle einen eigenen Kommentar, der auch angezeigt wird. Jetzt würde ich gerne jede dieser Zellen durch eine WENN-Formel auslesen können und in Zelle A12 anzeigen lassen, wenn in Zelle B2 (welches per Dropdown 32 verschiedene Begriffe anzeigen kann) sich der Text ändert. Wichtig ist, dass hierbei der Kommentar übernommen wird und wenn möglich angezeigt wird.
Zu erwähnen wäre noch, dass die Kommentare Bilder sind.
Allerdings fehlt mir das Wissen, wie ich den Kommentar aus einer der 32 Zellen (A123:A154) dabei mit übernehmen kann. Gibt es dafür ein "geheimes Zeichen" wie bei T(Vorlage("xy"))? Wenn ja, wo finde ich eine Auflistung solcher "geheimen Zeichen"?
Meine zweite Herangehensweise war, dass ich dies per bedingte Formatierung mache, aber dort kann ich keine Bilder einfügen oder geht das doch irgendwie?
Oder gibt es eine Möglichkeit ein Bild anzeigen zu lassen in Abhängigkeit davon, welcher Text in einer anderen Zelle steht?
Praktisch wäre es auch, wenn das Bild, beim Ausgeben, seine Formatierung nicht ändern würde.
Mit freundlichem Gruße
Cappi
Edit: Um ein Bild in einen Kommentar einzubinden macht man folgendes:
Zelle A123 auswählen>Rechtsklick>Kommentar einfügen>1x Leertaste drücken
Dann Kommentar anzeigen lassen
Rechtsklick auf den Kommentar>Fläche>Reiter Bitmapmuster auswählen>Import>Bild raussuchen>Reiter Schatten>auf 0 Distanz>In Reiter Fläche die Füllung auf Bitmap umstellen und Bild ganz unten auswählen>Rechts bei der Position noch das Häkchen bei Kacheln abwählen
Danach kann mit dem Makro von "F3K Total" das Bild woanders ausgegeben werden.
(GELÖST) Bilder mit Zellen verknüpfen
Moderator: Moderatoren
(GELÖST) Bilder mit Zellen verknüpfen
Zuletzt geändert von Cappi am Mi, 20.10.2021 19:57, insgesamt 3-mal geändert.
Re: Zellinhalt übernehmen oder Bilder in bedingte Formatierung einbinden
Moin,
ich habe dir dieBenutzerfunktion (Makro) get_annotation_picture (sCellname) programmiert, die das Bild aus dem Kommentar der in B2 gewählten Zelle (A127 bis A154) in Zelle A12 anzeigt, die Funktion wird in Zelle C2 aufgerufen:
Beispiel anbei.
Damit das Makro laufen darf, stellst du unter Extras/Einstellungen/Openoffice/Sicherheit/Makrosicherheit oder Extras/Optionen/LibreOffice/Sicherheit/Makrosicherheit mindestens die Stufe Mittel ein, dann wirst du beim Öffnen von Dokumenten gefragt, ob du Makros ausführen möchtest.
Gruß R
ich habe dir dieBenutzerfunktion (Makro) get_annotation_picture (sCellname) programmiert, die das Bild aus dem Kommentar der in B2 gewählten Zelle (A127 bis A154) in Zelle A12 anzeigt, die Funktion wird in Zelle C2 aufgerufen:
Code: Alles auswählen
Function get_annotation_picture(sCellname)
on error goto errorhandler
dim sFillBitmapURL as String
oSheet = thisComponent.Sheets(0)
oCell = oSheet.getcellrangebyName(scellname)
oAnnotationShape = oCell.Annotation.AnnotationShape
sFillBitmapURL = oAnnotationShape.FillBitmapURL
oTargetCell = oSheet.getcellRangeByName("H2")
oDrawpage = oSheet.drawpage
for i = 0 to oDrawpage.count -1
oShape = oDrawpage(i)
if oShape.Name = "TargetGrafik" then
oShape.GraphicURL = sFillBitmapURL
exit for
endif
next i
errorhandler:
end function
Damit das Makro laufen darf, stellst du unter Extras/Einstellungen/Openoffice/Sicherheit/Makrosicherheit oder Extras/Optionen/LibreOffice/Sicherheit/Makrosicherheit mindestens die Stufe Mittel ein, dann wirst du beim Öffnen von Dokumenten gefragt, ob du Makros ausführen möchtest.
Gruß R
- Dateianhänge
-
- getAnnotationPicture.ods
- (19.09 KiB) 127-mal heruntergeladen
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Zellinhalt übernehmen oder Bilder in bedingte Formatierung einbinden
Vielen lieben Dank Mr. R
Da ich mich mit Makros noch nicht richtig auskenne, kannst du mir eine kurze Step-by-Step-Anleitung mitliefern, was ich zu tun habe? Irgendwie funktioniert das bei mir noch nicht so ganz.
-unter Extras/Einstellungen/Openoffice/Sicherheit/Makrosicherheit auf "Mittel" stellen, habe ich erledigt
-das von dir geschriebene Makro unter Extras/Makros/Makros verwalten/OpenOffice Basic ->Meine Makros->Module1->Main unter der Zeile "End Sub" einfügen, habe ich erledigt
-wie geht es weiter? wo muss ich noch etwas einfügen, ändern oder sonstiges?
-Muss ich noch etwas bei deinem Makro abändern oder einfügen? Mich verwirrt besonders noch der Begriff (sCellname) in der Funktion. Soll ich dort noch eine Zelle oder einen Namen eintragen oder ist das fertig so, wie es ist?
-Und warum steht in deinem Makro unter oTargetCell = ("H2")? Warum ist es in Anführungszeichen und müsste es nicht dann eher B2 sein?
-Muss das rot-geschriebene von mir noch angepasst werden?
-Alles was blau und grün ist, dürfte ich ja vermutlich nicht verändern, richtig?
Mit freundlichem Gruße
Der unwissende Cappi
P.S.: Ich hoffe, ich mach keine zu großen Umstände
2.P.S.: Könnte ich dann jetzt mit einer Funktion like: WENN(B2="Auto";A123;wenn(B2="Bus";A124; usw.) in C12 jeweils einen anderen Kommentar/Bild erhalten?
3.P.S.: Und müssen die Bilder in den Orginalzellen (A123:A154) angezeigt werden oder können sie dort auch ausgeblendet sein um die Performance nicht zu sehr zu belasten?
4.P.S.: Brauche ich Java überhaupt um das alles zu nutzen?
Da ich mich mit Makros noch nicht richtig auskenne, kannst du mir eine kurze Step-by-Step-Anleitung mitliefern, was ich zu tun habe? Irgendwie funktioniert das bei mir noch nicht so ganz.
-unter Extras/Einstellungen/Openoffice/Sicherheit/Makrosicherheit auf "Mittel" stellen, habe ich erledigt
-das von dir geschriebene Makro unter Extras/Makros/Makros verwalten/OpenOffice Basic ->Meine Makros->Module1->Main unter der Zeile "End Sub" einfügen, habe ich erledigt
-wie geht es weiter? wo muss ich noch etwas einfügen, ändern oder sonstiges?
-Muss ich noch etwas bei deinem Makro abändern oder einfügen? Mich verwirrt besonders noch der Begriff (sCellname) in der Funktion. Soll ich dort noch eine Zelle oder einen Namen eintragen oder ist das fertig so, wie es ist?
-Und warum steht in deinem Makro unter oTargetCell = ("H2")? Warum ist es in Anführungszeichen und müsste es nicht dann eher B2 sein?
-Muss das rot-geschriebene von mir noch angepasst werden?
-Alles was blau und grün ist, dürfte ich ja vermutlich nicht verändern, richtig?
Mit freundlichem Gruße
Der unwissende Cappi
P.S.: Ich hoffe, ich mach keine zu großen Umstände
2.P.S.: Könnte ich dann jetzt mit einer Funktion like: WENN(B2="Auto";A123;wenn(B2="Bus";A124; usw.) in C12 jeweils einen anderen Kommentar/Bild erhalten?
3.P.S.: Und müssen die Bilder in den Orginalzellen (A123:A154) angezeigt werden oder können sie dort auch ausgeblendet sein um die Performance nicht zu sehr zu belasten?
4.P.S.: Brauche ich Java überhaupt um das alles zu nutzen?
Re: Zellinhalt übernehmen oder Bilder in bedingte Formatierung einbinden
Moin,
Du kannst die Zeile komplett löschen, wird nicht mehr benötigt, denn das Bild wird in TargetGrafik angezeigt, zellunabhängig.
Du fügst einfach irgendein Bild an der Stelle, wo du später das Bild angezeigt bekommen möchtest, in die Datei ein, machst dann einen Rechtsklick auf das Bild und benennst es unter Name ... zu TargetGrafik um.
)
Geht bestimmt einfacher, vielleicht hat jemand anderes eine Idee dazu?
Das ist völlig richtig, ich hatte das Bild erst in Zelle H2.Cappi hat geschrieben: Sa, 16.10.2021 20:04 -Muss ich noch etwas bei deinem Makro abändern oder einfügen? Mich verwirrt besonders noch der Begriff (sCellname) in der Funktion. Soll ich dort noch eine Zelle oder einen Namen eintragen oder ist das fertig so, wie es ist?
Du kannst die Zeile komplett löschen, wird nicht mehr benötigt, denn das Bild wird in TargetGrafik angezeigt, zellunabhängig.
Du fügst einfach irgendein Bild an der Stelle, wo du später das Bild angezeigt bekommen möchtest, in die Datei ein, machst dann einen Rechtsklick auf das Bild und benennst es unter Name ... zu TargetGrafik um.
Die function get_annotation_picture (sCellname) benötigt die Adresse der gewünschten Kommentarzelle alsText. (String)Cappi hat geschrieben: Sa, 16.10.2021 20:04 -Und warum steht in deinem Makro unter oTargetCell = ("H2")? Warum ist es in Anführungszeichen und müsste es nicht dann eher B2 sein?
Ich sehe nichts rot geschriebenesCappi hat geschrieben: Sa, 16.10.2021 20:04 -Muss das rot-geschriebene von mir noch angepasst werden?
Naja

das geht, ich würde es anders lösen, Beispiel wieder anbei. Ist aber kompliziert, ich habe jeder Zelle A127 bis A154 eine Benennung zugefügt, die per Matrixformel ausgewertet wird und dann automatisch die entsprechende Zelladresse zurückliefert.Cappi hat geschrieben: Sa, 16.10.2021 20:04 2.P.S.: Könnte ich dann jetzt mit einer Funktion like: WENN(B2="Auto";A123;wenn(B2="Bus";A124; usw.) in C12 jeweils einen anderen Kommentar/Bild erhalten?
Code: Alles auswählen
={"A"&MAX(($A$123:$A$154=$A$2)*ZEILE($A$123:$A$154))}
Ich hatte sie doch ausgeblendet, und es hat funktioniert.Cappi hat geschrieben: Sa, 16.10.2021 20:04 3.P.S.: Und müssen die Bilder in den Orginalzellen (A123:A154) angezeigt werden oder können sie dort auch ausgeblendet sein um die Performance nicht zu sehr zu belasten?
Nein! Das Makro ist in Starbasic, immer implemetiert, geschrieben.Cappi hat geschrieben: Sa, 16.10.2021 20:04 4.P.S.: Brauche ich Java überhaupt um das alles zu nutzen?
- Dateianhänge
-
- getAnnotationPicture.ods
- (21.43 KiB) 118-mal heruntergeladen
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Zellinhalt übernehmen oder Bilder in bedingte Formatierung einbinden
Vielen, vielen Dank
Funktioniert wunderbar. Musste mich bloß noch bissl reinfuchsen, was wo hingehört, weil mir die ganze Zeit Err512 oder 520 angezeigt wurde, aber hab dann alles zuordnen können und jetzt läufts, wie es soll.
Das rot geschriebene sehe ich, wenn ich deine Matrixformel einfüge. Sind jetzt nur noch 3 Zahlen. Sonst ist viel grüner Text und noch ein bisschen blau eingefärbter Text dabei. Hab das jetzt aber auch geschnallt.
Function get_annotation_picture(sCellname)
on error goto errorhandler
dim sFillBitmapURL as String
oSheet = thisComponent.Sheets(0)
oCell = oSheet.getcellrangebyName(scellname)
oAnnotationShape = oCell.Annotation.AnnotationShape
sFillBitmapURL = oAnnotationShape.FillBitmapURL
oDrawpage = oSheet.drawpage
for i = 0 to oDrawpage.count -1
oShape = oDrawpage(i)
if oShape.Name = "TargetGrafik" then
oShape.GraphicURL = sFillBitmapURL
exit for
endif
next i
errorhandler:
end function
So ungefähr +/- einige Sachen mehr oder weniger eingefärbt
Vielen Dank nochmal
Funktioniert wunderbar. Musste mich bloß noch bissl reinfuchsen, was wo hingehört, weil mir die ganze Zeit Err512 oder 520 angezeigt wurde, aber hab dann alles zuordnen können und jetzt läufts, wie es soll.
Das rot geschriebene sehe ich, wenn ich deine Matrixformel einfüge. Sind jetzt nur noch 3 Zahlen. Sonst ist viel grüner Text und noch ein bisschen blau eingefärbter Text dabei. Hab das jetzt aber auch geschnallt.
Function get_annotation_picture(sCellname)
on error goto errorhandler
dim sFillBitmapURL as String
oSheet = thisComponent.Sheets(0)
oCell = oSheet.getcellrangebyName(scellname)
oAnnotationShape = oCell.Annotation.AnnotationShape
sFillBitmapURL = oAnnotationShape.FillBitmapURL
oDrawpage = oSheet.drawpage
for i = 0 to oDrawpage.count -1
oShape = oDrawpage(i)
if oShape.Name = "TargetGrafik" then
oShape.GraphicURL = sFillBitmapURL
exit for
endif
next i
errorhandler:
end function
So ungefähr +/- einige Sachen mehr oder weniger eingefärbt

Vielen Dank nochmal