Seite 1 von 1
Re: Kommentare aus Zelle auslesen
Verfasst: Sa, 21.09.2013 10:03
von F3K Total
Moin,
dieses Thema gehört eigentlich in das Unterforum
OOo Basic und Java
Dieser Code schreibt den Kommentar aus Zelle A1 in Zelle B1
Code: Alles auswählen
Sub Main
oSheet = thiscomponent.sheets.getbyname("Tabelle1")
ocellSource = osheet.getcellbyposition(0,0)'A1
ocellTarget = osheet.getcellbyposition(1,0)'B1
sAnnotation = ocellSource.Annotation.String
ocellTarget.String = sAnnotation
End Sub
Zitat aus dem englischen Forum:
There are several macro languages in OOo, but none of them is called Visual Basic or VB(A)! Please call it OOo Basic, Star Basic or simply Basic.
Gruß R
Re: Kommentare aus Zelle auslesen
Verfasst: Sa, 21.09.2013 14:03
von F3K Total
Moin,
brandonson hat geschrieben:Es sollte ja eigentlich ohne irgendwelche Aufrufe einfach den Kommentar aus A1 in B1 schreiben, wenn ich das richtig verstanden habe.
Nee, tut es nicht, man muss es schon starten.
brandonson hat geschrieben:Und wenn es dann funktioniert, wie mache ich daraus eine Funktion, sodass ich diese in jeder Zelle aufrufen kann?
Da solltest du dir erstmal Gedanken machen, was du willst!
Wohin soll denn der Inhalt des Kommentares, also in welche Zelle, bezogen auf die Kommentarzelle, überhaupt hingeschrieben werden?
In die rechts neben der Quellzelle?
Das ginge etwa so
Code: Alles auswählen
Sub S_transfer_comment
ocellSource = thiscomponent.currentselection
if ocellSource.supportsservice("com.sun.star.sheet.SheetCell") then
if ocellSource.Annotation.string = "" then
msgbox ("Es ist kein Kommentartext vorhanden",16,"Kommentare auslesen")
exit sub
else
ocelladdress = ocellSource.celladdress
oSheet = thiscomponent.sheets(ocelladdress.Sheet)
ocellTarget = osheet.getcellbyposition(ocelladdress.column + 1,ocelladdress.row)'+ 1 d.h. eine Zelle neben der Quellzelle
sAnnotation = ocellSource.Annotation.String
ocellTarget.String = sAnnotation
endif
else
msgbox ("Bitte eine einzelne Zelle selektieren",16,"Kommentare auslesen")
exit sub
endif
End Sub
Starten kannst Du so ein Makro mit verschiedenen Methoden z.B.
- Schaltfläche wie im Beispiel
- eigenes Menü
- eigene Symbolleiste
- Tastenkombination
- Tabellenereignis
- usw.
Damit du ein Makro ausführen kannst, stellst du unter Extras/Optionen/Openoffice oder 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
Gruß R
Re: Kommentare aus Zelle auslesen
Verfasst: Sa, 21.09.2013 17:37
von F3K Total
Hi,
Code: Alles auswählen
function Kommentar(scell)
osheet = thiscomponent.sheets.getbyname("Tabelle1")
ocell = osheet.getcellrangebyname(scell)
Kommentar = ocell.annotation.string
end function
funktioniert auf Tabelle1, wenn du die Zelladresse in doublequotes einrahmst:
Aktualisiert sich bei Kommentaränderungen durch Öffnen des Dokumentes.
R
Re: Kommentare aus Zelle auslesen
Verfasst: So, 22.09.2013 17:17
von F3K Total
Probier' es aus, und forsche selbst weiter ...
Ich für meinen Teil bin raus, zumal ich den tieferen Sinn hinter deinem Anliegen nicht wirklich verstehe.
Scheint mir eher ein Forschungskonstrukt zu sein.
Wenn du Kommentare immer sehen willst, kannst Du sie auch direkt in eine Zelle schreiben.
Gruß R
Re: Kommentare aus Zelle auslesen
Verfasst: Mo, 23.09.2013 06:59
von F3K Total
Nun,
du könntest
alle Anmerkungen einmalig, mit einem Makro, mit Hilfe einer Schleife, in eine neue Spalte auslesen.
Die ließe sich, der Übersichtlichkeit wegen, auch einfach ausblenden.
Ihre Zellen könnten mit Probandenblättern, selbst in andere Dateien, verknüpft werden.
Ich denke, so wäre es viel einfacher und variabler... natürlich nicht, wenn man keine Ahnung von Psychologie hat

R
Re: Kommentare aus Zelle auslesen
Verfasst: Di, 24.09.2013 19:08
von F3K Total
Nun,
ein letzter Versuch.
- Überlege in welche Spalte die Kommentare geschrieben werden sollen. Füge ggf. eine leere Spalte ein.
- Selektiere den Spaltenkopf der Spalte, in der die Kommentare stehen.
- Führe folgendes Makro aus.
Code: Alles auswählen
Sub S_transfer_comment
osheet = Thiscomponent.currentcontroller.activeSheet
oRowSource = thiscomponent.currentselection
if right(oRowSource.AbsoluteName,7) <> "1048576" or oRowSource.columns.count <> 1 then
msgbox ("Bitte Spaltenkopf EINER Spalte mit den Kommentaren selektieren",16,"Kommentare auslesen")
exit sub
else
nSourceColumn = oRowSource.rangeaddress.Startcolumn
ocursor = osheet.createCursor
ocursor.gotoendofusedarea(false)
nEndRow = oCursor.rangeaddress.Endrow
sTargetcolumn = inputbox ( "Bitte LEERE Zielspalte angeben","Zielspalte","A")
nTargetColumn = osheet.getcellrangebyname(sTargetcolumn+"1").celladdress.column
for i = 0 to nEndRow
ocellSource = osheet.getcellbyposition(nSourceColumn,i)
if ocellSource.Annotation.string = "" then
else
ocellTarget = osheet.getcellbyposition(nTargetColumn,i)
sAnnotation = ocellSource.Annotation.String
ocellTarget.String = sAnnotation
endif
next i
endif
End Sub
Viel Erfolg
Gruß R
Re: Kommentare aus Zelle auslesen
Verfasst: Mi, 25.09.2013 17:06
von F3K Total
Hi,
brandonson hat geschrieben:... nicht unter OpenOffice?
Ich habe die Datei gerade unter
OOo 3.3.0, AOO 3.4.1 und AOO 4.0 probiert, funktioniert einwandfrei.
Übrigens habe ich sie unter
AOO 3.4.1 erstellt.
Entweder hast Du eine sehr alte Version, oder an Deiner Installation stimmt was nicht.
Welches Betriebssystem hast Du?
Gruß R
Re: Kommentare aus Zelle auslesen
Verfasst: Mi, 25.09.2013 17:22
von F3K Total
Hi,
hast du zum Anlegen von neuen Kontrollelementen in den Entwurfsmodus gewechselt?
Gruß R