Seite 1 von 3
per Makro einen Kommentar einfügen
Verfasst: Di, 06.07.2010 13:32
von clag
Hallo liebe Kenner und Könner,
Turtel47 mich auf ein Makro aufmerksam gemacht, welches er vor einiger Zeit generiert hat und meinem Wunsch "Bedingte Formatierungen" zu finden und kenntlich zu machen weitestgehend erfüllt.
viewtopic.php?f=2&t=18273#p76786
Ich habe nun zwei Änderungswünsche von denen einer wahrscheinlich recht leicht zu erfüllen ist, der andere wird vermutlich komplizierter.
1. anstelle des von Turtel47 zur Markierung angewendeten Rahmen hätte ich gern das der Zelle ein Kommentar ZB "auf diese Zelle wirkt eine BF" verpasst wird uns all Kommentare nach Beendigung des Makro angezeigt werden.
2. genial wäre es nun, wenn man die BF als Text in den Kommentar einfügen und anzeigen könnte
den Vorteil den ich dabei sehe ist, das man die Kommentare belassen kann und durch die Kommentar-Markierung in der Zelle hat man auch einen dauerhaften dezenten Hinweis auf eine BF
Der Rahmen von stört doch teilweise oder verändert die vorhandenen Rahmen und muss dann zurückgesetzt werden.
kann mir jemand konkret mit Code-Teilen helfen besonders Punkt 1 sollte doch durch einfachen Austausch der Zeile möglich sein
hier der Teil aus dem original Code von Turtel47, den man wohl für meine ersten Wunsch austauschen müsste
Code: Alles auswählen
if BedFormat > 0 Then
oBorder = oSheet.Tableborder
oBorderline = oBorder.TopLine
oBorderline.innerlinewidth = 50
oBorderline.color = RGB (36, 93, 219)
oBereich.topBorder = oBorderline
oBereich.leftBorder = oBorderline
oBereich.rightBorder = oBorderline
oBereich.bottomBorder = oBorderline
'oBereich.cellbackcolor = RGB(236, 233, 216)'Hintergrundfarbe Zelle
Dank ahoi
Re: per Makro einen Kommentar einfügen
Verfasst: Di, 06.07.2010 13:43
von turtle47
clag hat geschrieben:1. anstelle des von Turtel47 zur Markierung angewendeten Rahmen hätte ich gern das der Zelle ein Kommentar ZB "auf diese Zelle wirkt eine BF" verpasst wird uns all Kommentare nach Beendigung des Makro angezeigt werden.
Guckst Du mal
hier nach.
Re: per Makro einen Kommentar einfügen
Verfasst: Di, 06.07.2010 13:57
von clag
Hi Turtel47,
ja, genau bis dahin war ich auch schon gekommen aber mit keinem der beiden Code-Blöcke (so wie sie im Beispiel stehen, in deinen Code eingefügt) erreiche ich etwas
außer einer Fehlermeldung natürlich
da ist sicher noch "Feintuning" nötig bzw irgend welche Variablen oder Parameter muss man anpassen,
dabei laufe ich leider schon wieder auf Grund
Code: Alles auswählen
oCell = oSheet.getCellByPosition(sp,ze)
oCell.annotation.string="auf diese Zelle wirkt eine BF"
bringt auch nicht das gewünschte Ergebnis
Re: per Makro einen Kommentar einfügen
Verfasst: Di, 06.07.2010 14:15
von turtle47
clag hat geschrieben:aber mit keinem der beiden Code-Blöcke (so wie sie im Beispiel stehen, in deinen Code eingefügt) erreiche ich etwas
Zeige bitte mal den Code von Dir um zu sehen was da nicht passt.
Re: per Makro einen Kommentar einfügen
Verfasst: Di, 06.07.2010 14:32
von clag
Hi,
damit habe ich es zuletzt versucht
Code: Alles auswählen
Sub BF_suchen
oDoc = ThisComponent
oSheet = ThisComponent.CurrentController.getActiveSheet()
oZell = oDoc.getCurrentSelection()
oZell.supportsService("com.sun.star.sheet.SheetCellRange")
oSelect=ThisComponent.CurrentSelection.getRangeAddress
oSelectColumn=ThisComponent.CurrentSelection.Columns
oSelectRow=ThisComponent.CurrentSelection.Rows
CountColumn=oSelectColumn.getCount
CountRow=oSelectRow.getCount
Start_Column=oSelect.StartColumn
End_Column=oSelect.EndColumn
Start_Row =oSelect.StartRow
End_Row=oSelect.EndRow
For sp = Start_Column to End_Column
For ze = Start_Row to End_Row
oSelectSR = oSelect.StartRow + 1
oSelectEC = oSelectColumn.getByIndex(CountColumn-1).getName
oBereich = oSheet.getCellByPosition(sp,ze)
oBedingungen = oBereich.getPropertyValue( "ConditionalFormat" )
BedFormat = oBedingungen.Count
if BedFormat > 0 Then
oCell = oSheet.getCellByPosition(sp,ze)
oCell.annotation.string="auf diese Zelle wirkt eine BF"
' oBorder = oSheet.Tableborder
' oBorderline = oBorder.TopLine
' oBorderline.innerlinewidth = 150
' oBorderline.color = RGB (36, 93, 219)
' oBereich.topBorder = oBorderline
' oBereich.leftBorder = oBorderline
' oBereich.rightBorder = oBorderline
' oBereich.bottomBorder = oBorderline
' 'oBereich.cellbackcolor = RGB(236, 233, 216)'Hintergrundfarbe Zelle
end if
next ze
next sp
msgbox "Die Überprüfung ist abgeschlossen!",64, "BF suchen"
End Sub
das läuft ohne Fehlermeldung ab, fügt aber auch keine Notizen ein ......
Re: per Makro einen Kommentar einfügen
Verfasst: Di, 06.07.2010 14:41
von turtle47
Ersetze mal den If-Bereich durch folgendes:
....
if BedFormat > 0 Then
oBereich.annotation.string="auf diese Zelle wirkt eine BF"
end if
...
Re: per Makro einen Kommentar einfügen
Verfasst: Di, 06.07.2010 14:57
von clag
hm..... da ändert sich scheinbar nichts
Bereich markiert
Makro aufrufen
MsgBox pop auf
ok
aber keine Notiz in/an den Zellen mit einer BF !?
Re: per Makro einen Kommentar einfügen
Verfasst: Di, 06.07.2010 14:59
von Karolus
Hallo
In dem Bereich sind noch keine Notizen eingetragen, daher müssen die auch initialisiert werden:
Code: Alles auswählen
if ...
oSheet.getAnnotations.insertNew(obereich.celladdress(), "Zelle enthält ein BF")
end if
Gruß Karo
Re: per Makro einen Kommentar einfügen
Verfasst: Di, 06.07.2010 15:05
von komma4
Bei mir funktioniert das Makro, auch ohne Änderung

Re: per Makro einen Kommentar einfügen
Verfasst: Di, 06.07.2010 15:13
von clag
Hallo Karolus.
Tä tääh
ja das funzt prima
nun taucht für mich gleich die nächste Frage auf,
wie mach ich aus diesem Makro-recorder Code-Schnipsel
Code: Alles auswählen
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "NoteVisible"
args2(0).Value = true
eine funktionierende Basiczeile die Notiz anzeigen ?
und besteht eine Chance meinen zweiten Wunsch zu realisieren also die BF auslesen und in die Notiz schreiben ?
Re: per Makro einen Kommentar einfügen
Verfasst: Di, 06.07.2010 15:21
von komma4
setze die folgende Zeile hinter die STRING-Anweisung
Re: per Makro einen Kommentar einfügen
Verfasst: Di, 06.07.2010 15:31
von komma4
clag hat geschrieben:und besteht eine Chance meinen zweiten Wunsch zu realisieren also die BF auslesen und in die Notiz schreiben ?
Ja, natürlich.
Die Bedingungen (
oCell.Bedingungen) sind eine Aufzählung deren einzelne Elemente (
oCell.Bedingungen.getByIndex(x)), die folgenden Eigenschaften haben (vom Typ):
Code: Alles auswählen
Formula1 string
Formula2 string
Operator com.sun.star.sheet.ConditionOperator
StyleName string
Jetzt musst Du "nur noch" den Zellwert ermitteln und die Bedingung(en) durchgehen, welche zutrifft
XRAY, Dein Freund, zeigt Dir das alles.
Re: per Makro einen Kommentar einfügen
Verfasst: Di, 06.07.2010 15:36
von clag
Hallo Komma4,
wenn ich die von dir vorgeschlagenen Zeile in das Makro einsetze, dann gibt es einen Basic Laufzeitfehler
ich habe schon verschiedene Schreibweisen probiert, das ändert aber auch nichts

Re: per Makro einen Kommentar einfügen
Verfasst: Di, 06.07.2010 15:39
von komma4
Ich schrieb oben schon: bei mir funktioniert Dein Ursprungsmakro. Und hinter der Zeile
Code: Alles auswählen
oCell.annotation.string="auf diese Zelle wirkt eine BF"
steht nun
und funktioniert naürlich auch.
Re: per Makro einen Kommentar einfügen
Verfasst: Di, 06.07.2010 15:51
von clag
Hallo Komma4,
vielleicht setzt du etwas voraus was bei mir definitiv nicht existiert StarBasic Kenntnis oder Wissen
falls dein letzte Antwort irgendeine feinsinnige Information enthält, die
kann ich folglich nicht aufnehmen
oder sollt es tatsächlich so sein, auf einem PC/ BS funktioniert ein Makro auf einem andern nicht ?