Seite 1 von 1

[Gelöst] Datum als Datum einfügen, nicht als String

Verfasst: Sa, 04.02.2012 00:39
von Reginald
Hallo zusammen,

mit dem Code hier in Calc

Code: Alles auswählen

mydoc = ThisComponent
mySheet = myDoc.sheets(0)
mysheet.getCellByPosition(0,0).String = FileDateTime ("C:\autoexec.bat")
lasse ich mir das Änderungsdatum mit Uhrzeit in die Zelle A1 schreiben, allerdings packt mir OO immer das Hochkomma davor, also behandelt es als Text. Wenn ich statt .String .Formula nehme passiert das gleiche. Nehme ich .Value habe ich immer nur eine 0 als Wert.

Ich brauche das ganze als echtes Datum, nicht als String in der Zelle.

Was tun sprach Zeus?

Grüße R

Re: Datum als Datum einfügen, nicht als String

Verfasst: Sa, 04.02.2012 03:29
von komma4
Reginald hat geschrieben:Wenn ich statt .String .Formula nehme passiert das gleiche. Nehme ich .Value habe ich immer nur eine 0 als Wert.
F1 Hilfe zu FileDateTime hat geschrieben:Gibt eine Zeichenkette zurück, die Datum und Uhrzeit der Erstellung oder letzten Änderung einer Datei enthält.
Da die Rückgabe eine Zeichenkette ist - kann nichts anderes gesetzt werden (der Wert [.Value] einer Zeichenkette ist 0)

Verwende zusäzlich die Funktion DateValue um einen gültigen Zahlenwert mit .Value zu setzen.


Das hilft Dir weiter?

Re: Datum als Datum einfügen, nicht als String

Verfasst: Sa, 04.02.2012 08:36
von Frieder D.
Hallo

versuche es mahl damit:

Code: Alles auswählen

Sub Main
Dim mydoc AS Object
Dim mySheet AS Object
Dim myCell AS Object
mydoc = ThisComponent
mySheet = myDoc.sheets(0)
myCell=myDoc.sheets(0).getCellByPosition(3,0)
myCell.Value = DateValue(FileDateTime (myDoc.URL))
setNumberFormat(mydoc , myCell, "TT.MM.JJJJ")
End Sub
'-------------------------------------------------------
Sub setNumberFormat(oDoc as object ,oCellrange As Object,sFormatString AS String)
Dim aLocale AS Object
dim nFormatKey As Long
aLocale = CreateUnoStruct("com.sun.star.lang.Locale")
with aLocale 
   .Language = "de"
   .Country = "DE"
End With
' den Nummern-Format key erhalten (oder einen neuen erZeugen, falls er noch nicht existiert.) 
nFormatKey = oDoc.NumberFormats.queryKey(sFormatString, aLocale, True)
If nFormatKey = - 1 Then 'not found
   'create a new key for this number format
   nFormatKey = oDoc.NumberFormats.addNew(sFormatString, aLocale)
End If
'die Zelle formatieren:
oCellrange.NumberFormat = nFormatKey
end sub
'----------------------------------
Gruß Frieder

Re: Datum als Datum einfügen, nicht als String

Verfasst: Sa, 04.02.2012 10:09
von Stephan
Was tun sprach Zeus?
.FormulaLocal verwenden:

Code: Alles auswählen

mysheet.getCellByPosition(0,0).FormulaLocal = FileDateTime ("C:\autoexec.bat")

Gruß
Stephan

Re: Datum als Datum einfügen, nicht als String

Verfasst: Sa, 04.02.2012 11:32
von Reginald
Hallo zusammen,

vielen Dank für die Antworten! Die Funktion DateValue funktioniert, gibt mir aber nicht die Uhrzeit mit an.

Am besten ist das hier von Stephan.

Code: Alles auswählen

mysheet.getCellByPosition(0,0).FormulaLocal = FileDateTime ("C:\autoexec.bat")
Danke!

Reginald