Gültigkeits

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Gültigkeits von: serge
Geschrieben am: 31.03.2005 10:00:40

Hallo alle zusammen
Ich suche eine benutzerdefinierte Gültigkeit um sicher zu stellen das man nur Zeiten eingeben kann z.B. 45:30 (auch mehr als 24 stunden: Format etwa [h]:mm)
Wer kennt da die Lösung.
Danke
Serge

Bild


Betrifft: AW: Gültigkeits von: Boris
Geschrieben am: 31.03.2005 10:33:24

Hi Serge,

da Zeiten immer positive Dezimalzahlen sind, sollte es reichen, die Zelle mit [h]:mm zu formatieren und über die Gültigkeit nur Dezimalzahlen größer Null zuzulassen.

Grüße Boris


Bild


Betrifft: AW: Gültigkeits von: serge
Geschrieben am: 31.03.2005 10:39:39

Hi Boris
mit deiner Lösung kann ich 200 eingeben und es zeigt mir 4800:00 an (in der Zelle ist dann 18.7.1900 00:00:00 ein Datum).
Es sollte nicht möglich sein eine normale Zahl einzugeben also nur in dieser Form 200:00
serge


Bild


Betrifft: Nur Zeiteingaben zulässig - Workgaround von: Boris
Geschrieben am: 31.03.2005 11:03:48

Hi Serge,

kann mich Cobra nur anschließen - aber es ginge so:

Gültigkeitszelle (hier C3) als Text formatieren und unter Gültigkeit - Benutzerdefiniert:
=ISTZAHL(C3*1)*ANZAHL(FINDEN(":";C3))

Wenn du dann mit dem Zellwert weiterrechnen möchtest, musst du ihn in jeder Berechnung wieder zu einer Zahl machen - z.B. durch Multiplikation mit 1:
=C3*1

Grüße Boris


Bild


Betrifft: AW: Gültigkeits von: c0bRa
Geschrieben am: 31.03.2005 10:38:29

hallo...

das problem ist, dass zeiten in excel als zahlen behandelt werden...
wenn du von 0:00:01 - 23:59:59 haben willst hätte eine begrenzung >0 und <1 gereicht, da du aber auch mehr als 24 stunden eingeben willst, kriegst du ein problem... vielelicht mit der länge des textes ein ansatz der eingrenzung.

eine abfrage, ob ein : gefunden wird kannst du nicht einbauen, da die zeit die in der zelle hinterlegt ist eine bruchzahl darstellt, welche nur durch die formatierung ein : enthält... aber der wert von zelle a1 ist 0,5 wenn 12:00 angezeigt wird!

Rückmeldung nicht vergessen...
c0bRa


Bild


Betrifft: Format von: serge
Geschrieben am: 31.03.2005 10:47:34

Hi c0bRa
mit Zellformat [h]:mm)kann ich Zeitzen grösser als 24:00 eingeben aber so 200:00 nicht so 200. Ich kann damit weiterrechnen.
Wenn ich 200 eingeben und es zeigt mir 4800:00 an (in der Zelle ist dann 18.7.1900 00:00:00 ein Datum).
Es sollte nicht möglich sein eine normale Zahl einzugeben also nur in dieser Form 200:00
Serge


Bild


Betrifft: AW: Format von: c0bRa
Geschrieben am: 31.03.2005 10:51:54

und genau das ist das problem... es geht nicht...

200 entspricht 200 tagen also 200*24 stunden und ist gleich der eingabe 4800:00

excel utnerscheidet da nicht bei der eingabe, sondern lediglich in dem was effektiv in der zelle gespeichert wird...

einzige möglichkeit wäre es über die textlänge zu regeln...
>=4 und <=6 würde eingaben von 0:01 bis 999:99 zulassen, aber nicht pürfen ob es ein sinniges zeitformat ist...

zeit eingaben bringen dir auch nix, weil er bei 23:59 sagt "ende ist"...

Rückmeldung nicht vergessen...
c0bRa


Bild


Betrifft: Danke, Ich gebe auf! von: serge
Geschrieben am: 31.03.2005 11:12:34

Hallo alle
Ich komme mit allen euren Vorschläge nicht zurecht.
Ich gebe auf!
Danke Serge


Bild


Betrifft: AW: Ne, ne, weiter geht's von: Martin Beck
Geschrieben am: 31.03.2005 12:16:05

Hallo Serge,

versuch mal als Ansatz diese Ereignisprozedur (hier für Eingaben in Zelle A1):

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo errorhandler
If Target.Address(0, 0) = "A1" Then
    Target.NumberFormat = "[h]:mm"
    If Len(Target.Text) < 3 Then
        MsgBox "Fehleingabe. Es sind nur Eingaben in der Form hhh:mm zulässig. Bitte korigieren."
        Application.EnableEvents = False
        Target.Clear
        Target.Select
        Application.EnableEvents = True
        Exit Sub
    End If
    If Len(Target.Text) > 6 Or Mid(Target.Text, Len(Target.Text) - 2, 1) <> ":" Or CDbl(Right(Target.Text, 2)) > 59 Then
        MsgBox "Fehleingabe. Es sind nur Eingaben in der Form hhh:mm zulässig. Bitte korigieren."
        Application.EnableEvents = False
        Target.Clear
        Target.Select
        Application.EnableEvents = True
        Exit Sub
    End If
End If
Exit Sub
errorhandler:
Target.Clear
Target.Select
Application.EnableEvents = True
End Sub


Es müssen evtl. noch Fehler abgefangen werden, ich konnte nicht alles testen. Mußt Du halt einfach mal ausprobieren.

Gruß
Martin Beck


Bild


Betrifft: weiter geht's, aber bei mir noch nicht von: serge
Geschrieben am: 31.03.2005 18:16:29

Hallo Martin
zuerst mal Danke für dein Einsatz.
Ich habe dein VBA ausprobiert, komme aber nicht zu meinem Ziel.
Ich habe ein Beispiel angehängt.
https://www.herber.de/bbs/user/20445.xls
Gruss Serge


Bild


Betrifft: AW: weiter geht's, aber bei mir noch nicht von: Martin Beck
Geschrieben am: 31.03.2005 20:11:45

Hallo Serge,

tja, auch in Deiner Beispieldatei machte der Code das, was ich verstanden habe, was Du erreichen willst, und zwar

Stunden/Minuten bis 999:59 eingeben als Text mit hhh:mm als Strukturvorgabe und Umwandlung in eine "echte" Stundenangabe, mit der man weiterrechnen kann. Wenn Du etwas anderes willst, beschreibe das noch einmal ganz präzise.

Gruß
Martin Beck


Bild


Betrifft: AW: weiter geht's, aber bei mir noch nicht von: serge
Geschrieben am: 01.04.2005 08:50:41

Hallo Martin
Ich möchte dass die Eingabe nur in der Form hh:mm erfolgen kann,nicht einfach eine dezimal Zahl wie z.B 42.0
Also nur 42:00 oder auch 250:00
https://www.herber.de/bbs/user/20445.xls
Gruss Serge


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Probleme mit Aktualisierung in UF"