Datumsformat 01.01.1904 ---> in 30.12.1899 umwandeln
Moderator: Moderatoren
-
- **
- Beiträge: 41
- Registriert: Fr, 28.12.2007 20:42
Datumsformat 01.01.1904 ---> in 30.12.1899 umwandeln
Wie wandle ich die Datumseinstellungen von 01.01.1904 (Original von Excel) in 30.12.1899 um und übernehme dabei das Datum richtig vom Originaldokument?
Also nicht das aus dem 20.01.2007 (Original) der 19.01.2003 wird.
Habe etliche Zellen mit dem Excel-Datumsformat und nicht besonders viel Lust alles von Hand zu ändern.
Warum ich das möchte?
Weil ich das Makro " Datum von Heute" nutzen will.viewtopic.php?f=2&t=15398
Danke und Gruß
NN
Also nicht das aus dem 20.01.2007 (Original) der 19.01.2003 wird.
Habe etliche Zellen mit dem Excel-Datumsformat und nicht besonders viel Lust alles von Hand zu ändern.
Warum ich das möchte?
Weil ich das Makro " Datum von Heute" nutzen will.viewtopic.php?f=2&t=15398
Danke und Gruß
NN
Re: Datumsformat 01.01.1904 ---> in 30.12.1899 umwandeln
Hab' den zugehörigen Hilfetext hier: viewtopic.php?p=62586#p62586 schon mal zitiert, da hat es nicht hingepasst, lässt sich jetzt aber wunderbar recyceln. 

-
- *******
- Beiträge: 1763
- Registriert: Di, 03.10.2006 18:05
Re:Vorsicht= DateFormat 01.01.1904 ---> in 30.12.1899 umwand
Hallo "NeuerNutzer" & chrk,
in "xls-Dateien" wird das "1904_Datumsformat" hauptsächlich zur Darstellung von "MinusZeiten" (z.Bspl.: -3:40 Std. ) in den
Arbeitszeit_Abrechnungen und ebenso der Summierung von Plus- und MinusStunden, verwendet.
Bei Verwendung des 1900_Datumsformat, in "xls-Dateien", werden die "MinusZeiten" als Lattenzaun (#######) dargestellt.
Die Umwandlung der "Zeit" in dezimalZahl (-3:30 Std. zu -3,50 Std.) mit der Formel "(Zellwert)*24", ermöglicht die Berechnung der
"1900_NegativZeiten" im Format=DezimalZahl "2stellig" .
Deshalb sollte generell nur mit "Datei_Kopien" gearbeitet werden.
mfg
Gert
in "xls-Dateien" wird das "1904_Datumsformat" hauptsächlich zur Darstellung von "MinusZeiten" (z.Bspl.: -3:40 Std. ) in den
Arbeitszeit_Abrechnungen und ebenso der Summierung von Plus- und MinusStunden, verwendet.
Bei Verwendung des 1900_Datumsformat, in "xls-Dateien", werden die "MinusZeiten" als Lattenzaun (#######) dargestellt.
Die Umwandlung der "Zeit" in dezimalZahl (-3:30 Std. zu -3,50 Std.) mit der Formel "(Zellwert)*24", ermöglicht die Berechnung der
"1900_NegativZeiten" im Format=DezimalZahl "2stellig" .
Deshalb sollte generell nur mit "Datei_Kopien" gearbeitet werden.
mfg
Gert
Es gibt nichts gutes, außer man tut es.
Win7_64 / LO_4.4.5.2
Win7_64 / LO_4.4.5.2
-
- **
- Beiträge: 41
- Registriert: Fr, 28.12.2007 20:42
Re: Datumsformat 01.01.1904 ---> in 30.12.1899 umwandeln
Hallo Gert,
Eine Konvertierung in Excel bringt dann Probleme mit sich.
Das ist sozusagen eine Entscheidung für immer Entweder OOo oder Excelformat.
Genau darum geht es. Mit anderen Worten wenn ich alles von Hand (ins 30.12.1899 Format) ändere kann nur OOo richtig die - Zeit/Summen und Datum darstellen.in "xls-Dateien" wird das "1904_Datumsformat" hauptsächlich zur Darstellung von "MinusZeiten" (z.Bspl.: -3:40 Std. )in den
Arbeitszeit_Abrechnungen und ebenso der Summierung von Plus- und MinusStunden, verwendet.
Eine Konvertierung in Excel bringt dann Probleme mit sich.
Das ist sozusagen eine Entscheidung für immer Entweder OOo oder Excelformat.
-
- *******
- Beiträge: 1763
- Registriert: Di, 03.10.2006 18:05
Re: Datumsformat 01.01.1904 ---> in 30.12.1899 umwandeln
Hallo "Neuer Nutzer",
ich weisse darauf hin, werden die "1904_Datums" von "xls" in "1900_Datums" gewandelt, werden die "NegativWerte" in xls
zum "GartenZaun" (#####) formatiert. Umstellen des DatumFormats auf "1900er Werte" in "xls_Kopien" mit : "Extras" ---->"Optionen"
---->"Berechnung" ...."1904-Datumswerte" das "Häkchen" entfernen.
Die Summen- oder AdditionsWerte sind korrekt (xls). Deshalb der Hinweis, nur mit "Dateikopien" zu arbeiten.
Mit einer "eingefügten Spalte" kann die nachstehende Lösung Anwendung finden.
Es ist grundsätzlich effektiver, die "ZeitWerte" (z.Bspl. -3:30 Std. oder 3:30 Std.) in "Dezimalwerte" zu wandeln.
Die Formel lautet =A1*24, wenn A1 3:30 oder -3:30 enthält.Wie oben beschrieben ergibt das 3,50 oder -3,50.
So wären nun "xlsDaten" OOo_Calc "kompatibel".
Die ZeitWerte in "xls" sollten so formatiert werden : [hh]:mm, je nach "xls-Version" werden sonst nur "Zeitwerte" bis 24 Std angezeigt.
Die Addition von 18:00 + 10:00 Std. ergibt nur "4:00 Std.".
Hoffentlich hab ich Dich jetzt nicht ganz verwirrt. Aber mit einer "DateiKopie" bist Du immer auf der sicheren Seite.
mfg
Gert
ich weisse darauf hin, werden die "1904_Datums" von "xls" in "1900_Datums" gewandelt, werden die "NegativWerte" in xls
zum "GartenZaun" (#####) formatiert. Umstellen des DatumFormats auf "1900er Werte" in "xls_Kopien" mit : "Extras" ---->"Optionen"
---->"Berechnung" ...."1904-Datumswerte" das "Häkchen" entfernen.
Die Summen- oder AdditionsWerte sind korrekt (xls). Deshalb der Hinweis, nur mit "Dateikopien" zu arbeiten.
Mit einer "eingefügten Spalte" kann die nachstehende Lösung Anwendung finden.
Es ist grundsätzlich effektiver, die "ZeitWerte" (z.Bspl. -3:30 Std. oder 3:30 Std.) in "Dezimalwerte" zu wandeln.
Die Formel lautet =A1*24, wenn A1 3:30 oder -3:30 enthält.Wie oben beschrieben ergibt das 3,50 oder -3,50.
So wären nun "xlsDaten" OOo_Calc "kompatibel".
Die ZeitWerte in "xls" sollten so formatiert werden : [hh]:mm, je nach "xls-Version" werden sonst nur "Zeitwerte" bis 24 Std angezeigt.
Die Addition von 18:00 + 10:00 Std. ergibt nur "4:00 Std.".
Hoffentlich hab ich Dich jetzt nicht ganz verwirrt. Aber mit einer "DateiKopie" bist Du immer auf der sicheren Seite.
mfg
Gert
Es gibt nichts gutes, außer man tut es.
Win7_64 / LO_4.4.5.2
Win7_64 / LO_4.4.5.2
-
- **
- Beiträge: 41
- Registriert: Fr, 28.12.2007 20:42
Re: Datumsformat 01.01.1904 ---> in 30.12.1899 umwandeln
@ Gert
Das mit dem Umstellen der Datumsformate und die daraus resultierende falsche Darstellung ist mir bekannt.
Doch.Hoffentlich hab ich Dich jetzt nicht ganz verwirrt.
Das mit dem Umstellen der Datumsformate und die daraus resultierende falsche Darstellung ist mir bekannt.
Das würde bedeuten, dass ich 365 neue Zellen berechnen muß.Es ist grundsätzlich effektiver, die "ZeitWerte" (z.Bspl. -3:30 Std. oder 3:30 Std.) in "Dezimalwerte" zu wandeln.
Die Formel lautet =A1*24, wenn A1 3:30 oder -3:30 enthält.Wie oben beschrieben ergibt das 3,50 oder -3,50.
-
- **
- Beiträge: 41
- Registriert: Fr, 28.12.2007 20:42
Re: Datumsformat 01.01.1904 ---> in 30.12.1899 umwandeln
@ paljass
NN
Einstellen schon nur leider haut Excel bzw. OOo die Daten durcheinander bzw. stellt unter Umständen falsche Datumsangaben/Zeitangaben dar und das wäre fatal.Ob man das nur fürs Öffnen der Datei einstellen und anschließend wieder umstellen kann, kann ich nicht Testen, es mangelt an Excel.
NN
Re: Datumsformat 01.01.1904 ---> in 30.12.1899 umwandeln
Beispiel?Einstellen schon nur leider haut Excel bzw. OOo die Daten durcheinander
stellt unter Umständen falsche Datumsangaben/Zeitangaben dar
Welche Umstände sind damit gemeint?
Gruß
Stephan
-
- **
- Beiträge: 41
- Registriert: Fr, 28.12.2007 20:42
Re: Datumsformat 01.01.1904 ---> in 30.12.1899 umwandeln
Hat man ein OOo Dokument nicht im Format 1904 erstellt und will dann es nach Excel kopieren bzw, umgekehrt bekommt man echte Probleme wenn man das Datum via Makro (OOo) oder Strg+. (Excel) eingeben hat. Schlimm wird es wenn man dann noch im negativen Stundenbereich rechnen will. Das kann Excel nur mit 1904 Werten.
z.B. wird aus Di 01.01.08 (Datum per Makro eingegeben) im OOo Format (30.12.1899) in Excel (1904 Format) Mo 02.01.2012 . Klar ist mir, dass das mit dem Format zu tun hat. Passt man hier nicht auf was eingestellt ist kann das echt ins Auge gehen.
Gruß NN
Nachtrag:
Stellt man in Calc Format 1904 ein, kommt mit dem Makro "Datum von heute" nicht der 02.01.2008 sondern der 03.01.2012. Excel zeigt hier mit Strg+. das Richtige Datum an egal ob 1904 Format oder nicht.
z.B. wird aus Di 01.01.08 (Datum per Makro eingegeben) im OOo Format (30.12.1899) in Excel (1904 Format) Mo 02.01.2012 . Klar ist mir, dass das mit dem Format zu tun hat. Passt man hier nicht auf was eingestellt ist kann das echt ins Auge gehen.
Gruß NN
Nachtrag:
Stellt man in Calc Format 1904 ein, kommt mit dem Makro "Datum von heute" nicht der 02.01.2008 sondern der 03.01.2012. Excel zeigt hier mit Strg+. das Richtige Datum an egal ob 1904 Format oder nicht.
Re: Datumsformat 01.01.1904 ---> in 30.12.1899 umwandeln
Welche Probleme bekommt man?Hat man ein OOo Dokument nicht im Format 1904 erstellt und will dann es nach Excel kopieren bzw, umgekehrt bekommt man echte Probleme wenn man das Datum via Makro (OOo) oder Strg+. (Excel) eingeben hat.
Was für ein Makro verwendest Du in Calc, welches die Probleme dort erzeugt? Poste bitte den Code Deines Makros.
Das müßtest Du bitte erklären, ich habe es hier mit einigen Werten getestet und erhalte auch bei negativen Werten in Excel korrekte Ergebnisse bei der Berechnung (lediglich werden diese als "#### ..." angezeigt). Gibt es Beispielwerte mit denen ich das durch Dich benannte Fehlverhalten provozieren könnte?Schlimm wird es wenn man dann noch im negativen Stundenbereich rechnen will. Das kann Excel nur mit 1904 Werten.
Also ich weiß nicht was da ins Auge gegen kann, die Werte werden korrekt übernommen und die Einstellung des Bezugspunktes ist eine Einstellung die man vornehmen muß - wie sollte es auch anders möglich sein, denn genau das ist der Sinn dieser Einstellung. Mit dem Format hat das im Übrigen nichts zu tun, sondern lediglich mit dem Bezugspunkt zur Interpretation des Wertes 0 bei Datumswerten.z.B. wird aus Di 01.01.08 (Datum per Makro eingegeben) im OOo Format (30.12.1899) in Excel (1904 Format) Mo 02.01.2012 . Klar ist mir, dass das mit dem Format zu tun hat. Passt man hier nicht auf was eingestellt ist kann das echt ins Auge gehen.
Einziges Problem das ich kenne ist die bekannte Problematik des 29.02.1900 in Excel, was aber mit obenstehenden Werten nicht auftritt, da diese nach dem 29.02.1900 liegen.
Gruß
Stephan
-
- *******
- Beiträge: 1763
- Registriert: Di, 03.10.2006 18:05
Re: Datumsformat 01.01.1904 ---> in 30.12.1899 umwandeln
Hallo NeuerNutzer,
mit meiner letzten Antwort habe ich Dir alle einfachen Möglichkeiten aufgezeigt, damit die "xls_Datei" auch in "OpenOffice-Calc"
korrekt berechnet wird.
1.)
Die Formel in Zelle_D2 =B2-(A2+C2)
Nun in Zelle_E2 die Formel =WENN($B2<>"";($B2-($A2+$C2))*24 Es wird in "E2" die "AZeit" als "DezimalZahl" angezeigt, wenn "E2" als
Dezimal_Zahl formatiert ist. Bitte die gemischten Bezüge übernehmen, sonst klappt das kopieren nicht richtig.
Die Formel kann natürlich auch in der Zelle"D2" eingesetzt werden.
Den Maus_Cusor in die re. untere Ecke von "E2" bis ein + wird, Doppelklick li. Maustaste. Die Formel wird soweit nach unten kopiert, wie in
Spalte_D Werte stehen.
So wären nun "xlsDaten" OOo_Calc "kompatibel".
Der Fehler liegt einwandfrei bei "brother bill". In "xls_2003" werden "MinusZeiten" als Fehler negiert.
mfg
Gert
mit meiner letzten Antwort habe ich Dir alle einfachen Möglichkeiten aufgezeigt, damit die "xls_Datei" auch in "OpenOffice-Calc"
korrekt berechnet wird.
1.)
2.)Umstellen des DatumFormats auf "1900er Werte" in "xls_Kopien" mit : "Extras" ---->"Optionen"
---->"Berechnung" ...."1904-Datumswerte" das "Häkchen" entfernen.
3.) Die Tabelle hat die Zellen : AnfangsZeit (=A2); EndZeit (=B2); Pause (=C2) und A_Zeit (=D2).Mit einer "eingefügten Spalte" kann die nachstehende Lösung Anwendung finden.
Die Formel in Zelle_D2 =B2-(A2+C2)
Nun in Zelle_E2 die Formel =WENN($B2<>"";($B2-($A2+$C2))*24 Es wird in "E2" die "AZeit" als "DezimalZahl" angezeigt, wenn "E2" als
Dezimal_Zahl formatiert ist. Bitte die gemischten Bezüge übernehmen, sonst klappt das kopieren nicht richtig.
Die Formel kann natürlich auch in der Zelle"D2" eingesetzt werden.
Den Maus_Cusor in die re. untere Ecke von "E2" bis ein + wird, Doppelklick li. Maustaste. Die Formel wird soweit nach unten kopiert, wie in
Spalte_D Werte stehen.
So wären nun "xlsDaten" OOo_Calc "kompatibel".
Der Fehler liegt einwandfrei bei "brother bill". In "xls_2003" werden "MinusZeiten" als Fehler negiert.
mfg
Gert
Es gibt nichts gutes, außer man tut es.
Win7_64 / LO_4.4.5.2
Win7_64 / LO_4.4.5.2
-
- **
- Beiträge: 41
- Registriert: Fr, 28.12.2007 20:42
Re: Datumsformat 01.01.1904 ---> in 30.12.1899 umwandeln
Nachdem gestern das Forum für mich nicht richtig erreichbar war folgt erst heute meine Antwort.
Richtig ist, dass wenn man das 1904 Datum einstellt es keine Probleme mit Excel gibt.
Ich habe mich hier wohl falsch ausgedrückt bzw. den Roten Faden verloren.
Der Hauptgrund meiner Frage ist jedoch geblieben.
Ich kann das unten aufgeführte Makro beim 1904 Datum in Calc nicht verwenden. Es zeigt dann das falsche Datum an
Würde aber ungern auf diese Makro verzichten wollen.
Ich verwende das hier
Richtig ist, dass wenn man das 1904 Datum einstellt es keine Probleme mit Excel gibt.
Ich habe mich hier wohl falsch ausgedrückt bzw. den Roten Faden verloren.
Der Hauptgrund meiner Frage ist jedoch geblieben.
Ich kann das unten aufgeführte Makro beim 1904 Datum in Calc nicht verwenden. Es zeigt dann das falsche Datum an
Würde aber ungern auf diese Makro verzichten wollen.
Was für ein Makro verwendest Du in Calc, welches die Probleme dort erzeugt? Poste bitte den Code Deines Makros.
Ich verwende das hier
Code: Alles auswählen
REM ***** BASIC *****
function Datum()
oZell = thisComponent.getcurrentSelection()
if not oZell.supportsService("com.sun.star.sheet.SheetCell") then
msgbox "Bitte nur eine Zelle auswählen", 48, "Fehler!"
exit function
end if
oZell.value = now()
'oZell.NumberFormat = 30 'Format 13.05.06
'oZell.NumberFormat = 31 'Format Sa 13.Mai 06
'oZell.NumberFormat = 32 'Format 05.06
'oZell.NumberFormat = 33 'Format 13.Mai
'oZell.NumberFormat = 34 'Format Mai
'oZell.NumberFormat = 35 'Format 2. Quartal 06
oZell.NumberFormat = 36 'Format 13.05.2006
'oZell.NumberFormat = 38 'Format Samstag, 13. Mai 2006
'oZell.NumberFormat = 39 'Format 13. Mai 06
end function
Re: Datumsformat 01.01.1904 ---> in 30.12.1899 umwandeln
Naja, Du mußt dann schon im Makro auf das richtige Datum umrechnen, now() kann ja nicht wissen ob der Rückgabewert für eine Tabellenzelle dient oder für was anderes.Ich verwende das hier
[...]
Am Einfachsten lasse Calc die Umwandlung machen, statt sie direkt in Basic zu implementieren:
Code: Alles auswählen
function Datum()
oZell = thisComponent.getcurrentSelection()
if not oZell.supportsService("com.sun.star.sheet.SheetCell") then
msgbox "Bitte nur eine Zelle auswählen", 48, "Fehler!"
exit function
end if
oZell.Formula = "=TODAY()"
tmp = oZell.Value
oZell.Value = tmp
'oZell.NumberFormat = 30 'Format 13.05.06
'oZell.NumberFormat = 31 'Format Sa 13.Mai 06
'oZell.NumberFormat = 32 'Format 05.06
'oZell.NumberFormat = 33 'Format 13.Mai
'oZell.NumberFormat = 34 'Format Mai
'oZell.NumberFormat = 35 'Format 2. Quartal 06
oZell.NumberFormat = 36 'Format 13.05.2006
'oZell.NumberFormat = 38 'Format Samstag, 13. Mai 2006
'oZell.NumberFormat = 39 'Format 13. Mai 06
end function
Gruß
Stephan
-
- **
- Beiträge: 41
- Registriert: Fr, 28.12.2007 20:42
Re: Datumsformat 01.01.1904 ---> in 30.12.1899 umwandeln
Danke für den Tipp werde es gleich mal testen. Bin kein Experte bei Makros.
Gruß NN
Gruß NN