Seite 1 von 1

formatiertes Feld für Datumseingaben soll vor Eingabe leer..

Verfasst: Mo, 27.06.2005 15:55
von tubeman
...sein.

Hallo,

ich habe eine OO Calc Dokument mit formatierten Feldern für Name, Adresse, und eben auch für das Geburtsdatum.
Die verknüpfung und auswertung dieser Felder funktioniert sehr gut, es stört mich nur das die Felder die auf Datum formatiert sind automatisch mit dem Datum 30.12.1899 gefüllt sind. Gibt es eine Möglichkeit dass diese Felder bei Nichteingabe leer bleiben?

Schöne Grüße

Marco

Verfasst: Mo, 27.06.2005 20:40
von FranzX
Hi Marco,

normalerweise sind mit Datum formatierte Felder leer.
Ich weis nicht wie du die Zellen verbunden hast.
Die Lösung wäre eine WENN-Formel:
Wenn(VerknüpfteZelle = "";"";VerknüpfteZelle)
Als "VerknüpfteZelle" musst du natürlich den Zellbezug einsetzen.

Ich hoffe dies hilft dir.
Gruß
FranzX

Verfasst: Di, 28.06.2005 11:51
von Stephan
(vielen Dank an Stephan)
Naja, dann schreib doch noch eine Fehlerroutine hinzu:

Code: Alles auswählen

Sub Main 
On Error Resume Next
Sheet = ThisComponent.CurrentController.ActiveSheet 
'für DateField den richtigen Namen eintragen 
Form = Sheet.DrawPage.Forms.GetByIndex(0).GetbyName("DateField") 
'für A3 den Namen der zu verknüpfenden Zelle eintragen 
Sheet.getCellRangeByName("A3").Value = CDateFromIso(Form.date) 
End Sub
Nun kommst Du nicht mehr in die Basic-IDE, nur wenn ein Fehler auftritt wird er jetzt einfach ignoriert d.h. tritt ein Fehler auf passiert nichts, aber ebend auch nichts Richtiges.

Sonst müßtest Du nochmal spezifizieren was für Fehler überhaupt auftreten können.

Ansonsten fällt mir zu dem anderen Feld auf die Schnelle nichts ein, außer mach die Schrift weiß.
Die Formatierung im Feld dürfte so etwa sein:
TT.MM.JJJJ
machst Du daraus:
[=0][WEISS]TT.MM.JJJJ
dann sollte für Wert 0 immer noch das "1899..." drinstehen aber nicht zu sehen sein weil weiß.

P.S.
ich habe das nur aus dem Kopf geschrieben, wenn es nicht geht schau in der Hilfe unter Format-Code Zahlenformat-Code oder so, erklärt ist da alles.

Gruß
Stephan

Verfasst: Mo, 04.07.2005 10:24
von tubeman
Ansonsten fällt mir zu dem anderen Feld auf die Schnelle nichts ein, außer mach die Schrift weiß.
Die Formatierung im Feld dürfte so etwa sein:
TT.MM.JJJJ
machst Du daraus:
[=0][WEISS]TT.MM.JJJJ
dann sollte für Wert 0 immer noch das "1899..." drinstehen aber nicht zu sehen sein weil weiß.
Danke für den Tipp, ich habe mein Datum jetzt so formatiert:

[=0]"Geburtsdatum eingeben";TT.MM.JJJJ

Im Feld steht dann "Geburtsdatum eingeben" wenn die Zelle darunter leer ist, so ist es auch beabsichtigt.

Das Problem ist jetzt aber wenn ich zum Beispiel den 04.06.1990 als Datum eingebe schreibt er den 03.01.1900. Warum er das macht ist mir klar (30.12.1899=0,....03.01.1900=4), ich würde es aber gern irgendwie abschalten. D.h. im Normalfall soll das Feld leer sein oder mit "Geburtsdatum eingeben" gefüllt sein, wenn man dann ein Datum eingibt sollte es auch so in dem Feld stehen.

In der OO-Hilfe hab ich unter Format-Code nachgesehen, war zwar sehr hilfreich aber für mein Problem konnte ich keine Lösung finden.


P.S: vielen Dank für den Code. Hat auch funktioniert, allerdings schreibt er hier bei standartmäßig das Tagesdatum rein.

Zur Erklärung:
Die Felder für das Geburtsdatum sind für: Kunde, Partner, Kind1, Kind2, Kind3, etc... Wenn der Kunde keine Kinder hat sollten diese Felder leer sein und nicht mit dem Tagesdatum gefüllt. Ich habe jetzt Formatierte Felder auf die Tabelle gelegt damit die Kollegen die später damit arbeiten sollen nicht auf dem Tabellenblatt "rumirren", außerdem kann ich die Tab-Reihenfolge bestimmen. (Ich hoffe das war jetzt halbwegs verständlich ausgedrückt... :D

Schöne Grüße

Marco

Verfasst: Mo, 04.07.2005 10:43
von tubeman
Danke für den Tipp, ich habe mein Datum jetzt so formatiert:

[=0]"Geburtsdatum eingeben";TT.MM.JJJJ

Im Feld steht dann "Geburtsdatum eingeben" wenn die Zelle darunter leer ist, so ist es auch beabsichtigt.

Das Problem ist jetzt aber wenn ich zum Beispiel den 04.06.1990 als Datum eingebe schreibt er den 03.01.1900. Warum er das macht ist mir klar (30.12.1899=0,....03.01.1900=4), ich würde es aber gern irgendwie abschalten. D.h. im Normalfall soll das Feld leer sein oder mit "Geburtsdatum eingeben" gefüllt sein, wenn man dann ein Datum eingibt sollte es auch so in dem Feld stehen.
Ich hab den Fehler gefunden!!!!

Richtiges Format ist:

[=0]"Geburtsdatum eingeben";TT.MM.JJJJ;TT.MM.JJJJ


Schöne Grüße

Marco

Verfasst: Fr, 15.07.2005 12:01
von tubeman
Hallo,

ich habe jetzt doch noch ein Problem gefunden:

wenn man beim Geburtsdatum die Punkte vergisst wandelt OO die Zahl in ein Datum um, wenn man zum beispiel den 04061978 eingibt bekommt man den 25.04.13021.

Das Problem ist jetzt das OO bei daten wie z. Bsp 30061955 (30.06.1955) abstürzt.

Hat vielleicht jemand einen Tipp für dieses Problem?

Schöne Grüße

Marco