Zellvorlage ermitteln
Moderator: Moderatoren
Zellvorlage ermitteln
Hallo,
könnte jemand von Euch Basic-Programmierern eine Funktion erstellen, mit der man die Vorlage einer Zelle ermittelt und die man z.B. so anwenden könnte:
=ZELLVORLAGE(A1)
Ergebnis wäre der Name der Vorlage von A1
Toll wäre ausch, wenn =ZELLVORLAGE() den Namen der Vorlage der aktuellen Zelle liefern würde.
Schon mal vielen Dank!
könnte jemand von Euch Basic-Programmierern eine Funktion erstellen, mit der man die Vorlage einer Zelle ermittelt und die man z.B. so anwenden könnte:
=ZELLVORLAGE(A1)
Ergebnis wäre der Name der Vorlage von A1
Toll wäre ausch, wenn =ZELLVORLAGE() den Namen der Vorlage der aktuellen Zelle liefern würde.
Schon mal vielen Dank!
Hallo
funktioniert aber nicht für :ZELLVORLAGE('andere Zelladresse')
Gruß Karo
Dafür hab ich eine Lösung gefunden :Toll wäre ausch, wenn =ZELLVORLAGE() den Namen der Vorlage der aktuellen Zelle liefern würde.
Code: Alles auswählen
function Zellvorlage as string
mydoc = thisComponent
'zelle = ThisComponent.Sheets(0).getCellRangeByName(Adresse)
'zelle = ThisComponent.CurrentController.ActiveSheet.getCellRangeByName(adresse)
Zelle=myDoc.getCurrentSelection()
Zellvorlage = zelle.cellstyle
end function
Gruß Karo
Hallo Eia
Und jetzt noch eine Variante für den Aufruf mit :
=ZELLVORLAGE("A1") !mit Anführungszeichen! oder:
=ZELLVORLAGE(ZELLE("ADDRESS";A1))
ein Aufruf mit :
=ZELLVORLAGE(ZELLE("ADDRESS"))
liefert dir die Vorlage der aktuellen Zelle.
Gruß Karo
Und jetzt noch eine Variante für den Aufruf mit :
=ZELLVORLAGE("A1") !mit Anführungszeichen! oder:
=ZELLVORLAGE(ZELLE("ADDRESS";A1))
Code: Alles auswählen
function Zellvorlage(adresse) as string
mydoc = thisComponent
'zelle = ThisComponent.Sheets(0).getCellRangeByName(Adresse)
zelle = ThisComponent.CurrentController.ActiveSheet.getCellRangeByName(adresse)
'Zelle=myDoc.getCurrentSelection()
Zellvorlage = zelle.cellstyle
end function
=ZELLVORLAGE(ZELLE("ADDRESS"))
liefert dir die Vorlage der aktuellen Zelle.
Gruß Karo
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Mein Vorschlag:
Code: Alles auswählen
Function CellStyleName
sModulName = "CellStyleName "
sModulVersion = "20070104 " ' http://de.openoffice.info/viewtopic.php?t=10443
oDoc = ThisComponent
If Not oDoc.supportsService(_
"com.sun.star.sheet.SpreadsheetDocument" ) Then
MsgBox _
"Diese Funktion wurde nicht von einem Calc-Dokument aufgerufen." & CHR(10) _
& CHR(10) & "Erklärung:" _
& CHR(10) & "Diese Funktion meldet die verwendete Zell-Vorlage der aktuellen Zelle" _
& CHR(10) & "bei CALC-Dateien und funktioniert nur dort." _
& CHR(10) _
& CHR(10) & "Diese Funktion wird nun beendet." _
, 48 , sModulName & sModulVersion
Exit Function
End If
' get selection
oSel = oDoc.getCurrentSelection
' only one cell?
If Not oSel.supportsService(_
"com.sun.star.sheet.SheetCell" ) Then
MsgBox _
"Falsche Auswahl getroffen." & CHR(10) _
& CHR(10) & "Erklärung:" _
& CHR(10) & "Diese Funktion meldet die verwendete Zell-Vorlage der aktuellen Zelle." _
& CHR(10) & "Die momentane Auswahl ist aber keine (einzelne!) Zelle." _
& CHR(10) _
& CHR(10) & "Diese Funktion wird nun beendet." _
, 48 , sModulName & sModulVersion
Exit Function
else
CellStyleName = oSel.CellStyle
end if
End Function
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Zunächst ganz herzlichen Dank!
1. Version:
funktioniert im Prinzip. Aber nur bei der Ersteingabe. Wenn man nachträglich die Vorlage ändert, wird immer noch die alte angezeigt. Nur wenn man den Zellinhalt löscht und neu eingibt, wird wieder die aktuelle Vorlage gezogen. Aber möglicherweise ist das die übliche Funktionsweise von benutzereigenen Funktionen, das weiss ich nicht.
2, Version
liefert bei mir immer default, egal, welche Vorlage zugeordnet ist.
die dritte Version liefert das gleiche Ergebnis wie die erste. Zum aktualisieren muss man auch den Zellinhalt löschen und die Formel neu eingeben.
Ist das immer so bei selbstgebauten Funktionen? Werden die nicht aktualisiert wie die eingebauten?
Schöne Grüsse
1. Version:
Code: Alles auswählen
function Zellvorlage as string
mydoc = thisComponent
'zelle = ThisComponent.Sheets(0).getCellRangeByName(Adresse)
'zelle = ThisComponent.CurrentController.ActiveSheet.getCellRangeByName(adresse)
Zelle=myDoc.getCurrentSelection()
Zellvorlage = zelle.cellstyle
end function
2, Version
Code: Alles auswählen
function Zellvorlage(adresse) as string
mydoc = thisComponent
'zelle = ThisComponent.Sheets(0).getCellRangeByName(Adresse)
zelle = ThisComponent.CurrentController.ActiveSheet.getCellRangeByName(adresse)
'Zelle=myDoc.getCurrentSelection()
Zellvorlage = zelle.cellstyle
end function
die dritte Version liefert das gleiche Ergebnis wie die erste. Zum aktualisieren muss man auch den Zellinhalt löschen und die Formel neu eingeben.
Ist das immer so bei selbstgebauten Funktionen? Werden die nicht aktualisiert wie die eingebauten?
Schöne Grüsse
Hallo
Bei mir laufen alle drei Versionen, unter Verwendung der jeweils passenden Syntax:
mit Version 1 und 3 die Vorlage der aktuellen Zelle :
=ZELLVORLAGE()
=CELLSTYLENAME()
mit Version 2 :
=ZELLVORLAGE(ZELLE("ADDRESS")) → Vorlage der Zelle in der die Funktion steht.
=ZELLVORLAGE("A1") oder
=ZELLVORLAGE(ZELLE("ADDRESS";A1)) →Vorlage von A1
Gruß Karo
Nein, das liegt daran das die Funktion nicht mit den Zellinhalten rechnet, sondern nur das Zellformat abfragt, die Aktualisierung der Funktion kannst du aber auch mit STRG+SHIFT+F9 erzwingen.Ist das immer so bei selbstgebauten Funktionen? Werden die nicht aktualisiert wie die eingebauten?
Bei mir laufen alle drei Versionen, unter Verwendung der jeweils passenden Syntax:
mit Version 1 und 3 die Vorlage der aktuellen Zelle :
=ZELLVORLAGE()
=CELLSTYLENAME()
mit Version 2 :
=ZELLVORLAGE(ZELLE("ADDRESS")) → Vorlage der Zelle in der die Funktion steht.
=ZELLVORLAGE("A1") oder
=ZELLVORLAGE(ZELLE("ADDRESS";A1)) →Vorlage von A1
Gruß Karo