online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon Petra0403 vom 06.06.2020, 02:17 Options

Uhrzeit und Datum

Hallo!
Ist es in Excel möglich, dass ich nur die Uhrzeit in einer Zelle eingebe, mir aber das dazugehörige Datum mitangezeigt wird?
Also bei Eingabe von 22:30 soll 05.06. - 22:30 angezeigt werden. Über das Datumformat zeigt Excel leider 00.01.1900 an. Kann mir jemand helfen?
Danke!.


Antwort schreiben

Antwort 1 von KJG17 vom 06.06.2020, 04:01 Options

Hallo Petra,

in Excel erfolgt bei dir die Zählung von Datum und Uhrzeit ausgehend vom 01.01.1900 = '1', der 06.06.08 hat danach den Wert '39605'.

Zeitangaben werden als Dezimalwerte dieser Datumswerte erfasst. Wenn du also nur 22:30 eingibst, entspricht das Excel-Intern dem Dezimalwert 0,9735, also 23:30 Uhr am 00.01.1900.

Für den 06.06.08 23:30 Uhr müsste der hinter Datum+Uhrzeit stehende Dezimalwert 39605,9735 lauten, aber woher sollte Excel das wissen, wenn du mit 23:30 nur die Werte hinter dem Komma eingibst?

Gruß
Kalle

Antwort 2 von nighty vom 06.06.2020, 19:41 Options

hi all

ein beispiel

gruss nighty

einzufuegen

alt*f11/projektexplorer/deinetabelle

Private Sub worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Cells(Target.Row, Target.Column) = Date & "-" & Cells(Target.Row, Target.Column)
Application.EnableEvents = True
End Sub

Antwort 3 von schnallgonz vom 06.06.2020, 21:53 Options

Salvete

@nighty
Liegt es an meinem Steinzeit-Excel97?
Mit Deinem Code wird bei mir z.B. aus 20:21
06.06.2008-0,847916666666667
Erst nach Formatzuweisung funzt es
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Cells(Target.Row, Target.Column).NumberFormat = "dd/mm/jjjj - hh:mm"
Cells(Target.Row, Target.Column) = Date & " - " & Cells(Target.Row, Target.Column)
Application.EnableEvents = True
End Sub
Ergebnis dann 06.06.2008 - 20:21:00

Wie man die Sekundendarstellung abklemmt, weiß ich nicht.
Cells(Target.Row, Target.Column) = Day(Date) & "." & Month(Date) & ". - " & Cells(Target.Row, Target.Column)
bringt zwar das Datum ohne Jahr, aber nur einstellig, trotz Formatzuweisung.

mfg
schnallgonz

Antwort 4 von nighty vom 07.06.2020, 14:48 Options

hi schnallgonz :-)

die leidige kompatibilitaet :-))

erstellt mit excel 2000 ,zelle als standard formatiert

gut das es noch andere beispiele bzw von dir gibt :-))

gruss nighty

Antwort 5 von Petra0403 vom 09.06.2020, 17:07 Options

Entschuldigung!

Ich habe ein paar Tage nicht nachgesehen und siehe da - ihr ward trotzdem fleißig. Habs gleich mal ausprobiert und ich bin schon fast zufrieden. Schon mal vielen Dank.
Ich dachte aber, dass ich nun über eine Hilfsspalte B (=A1 - wenn in A das Datum mit Uhrzeit steht) diese Spalte B als Zahl formatiere und damit rechnen (Sortieren) kann. Leider zeigt mir nach =A1 in B1 das Datum doppelt an( mit Uhrzeit)

Gruß Petra

Antwort 6 von schnallgonz vom 09.06.2020, 23:03 Options

Salve Petra,
Du kannst die Datumspalte auch sortieren, ohne sie in einer Hilfspalte als Zahl zu formatieren.
Man sollte aber das Ereignis auf die Spalte beschränken, in welcher die
Uhrzeit eingegeben wird.
Sonst wird bei jeder Eingabe das Datum erneut geschrieben.
Versuch es mal mit diesem Code, falls die Uhrzeit in Spalte A eingegeben wird:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
'falls Eingabe in Spalte A
If Target.Column = 1 Then
    Cells(Target.Row, 1).NumberFormat = "dd/mm/jjjj - hh:mm"
    Cells(Target.Row, 1) = Date & " - " & Cells(Target.Row, 1)
End If
Application.EnableEvents = True
End Sub

mfg
schnallgonz

Antwort 7 von Petra0403 vom 10.06.2020, 11:44 Options

Danke Schnallgonz,

Das Sortieren scheint zu klappen. Was mich stört ist das Jahr und die Sekunden, wegen der Spaltenbreite und das ich bei Bedarf kein anderes Datum eingeben kann. Ist da noch was zu machen? Also mein großes Ziel ist es, dass sich die Tabelle
nach den Zeiten in Spalte B automatisch sortiert - aber eben von 05:00 - wieder 05:00 Uhr. Gleichzeitig will ich aber auch Eingaben sparen, also nicht immer das ganze Datum mit eingeben. Steht aber mal ein Datum mit Uhrzeit drin, soll es an folgenden Tagen in der Sortierreihenfolge weiter so bleiben, wie es ist - also sich nicht automatisch am nächsten Tag verändern! Ich bin so froh, dass ihr mir helft.

Antwort 8 von schnallgonz vom 10.06.2020, 22:55 Options

Hallo,
wie ich schon schrieb, mit Excel97 bekomme ich weder das Jahr noch die Sekunden weg.
Welche Excelversion verwendest Du?

Ein automatisches Sortieren ist schlecht, bei jeder Eingabe oder wie?
Besser per Klick auf einen Button, oder?

Zitat:
Steht aber mal ein Datum mit Uhrzeit drin, soll es an folgenden Tagen in der Sortierreihenfolge weiter so bleiben, wie es ist - also sich nicht automatisch am nächsten Tag verändern
Verstehe ich nicht.
Ein einmal eingetragener Wert verändert sich nicht.

Ein Problem ist, dass Du einen Wert in Spalte A nicht ändern kannst,
deshalb brauchst Du das Ereignis "Datumbeistellung" wahlweise, man muss es per Button ein- und ausschalten können.

Ist gar nicht so schwer:
Du legst eine Umschaltfläche in Deinem Tabellenblatt an
(Symbolleiste "Steuerelement Toolbox")

Dort, wo schon das Worksheet_Change Ereignis steht, kopierst Du folgenden Code:
Private Sub ToggleButton1_Click()
Dim TB As ToggleButton
Set TB = ToggleButton1
   If TB.Value = True Then
   TB.Caption = "HilfeAn"
   DatumHilfeAn
   Else
   TB.Caption = "HilfeAus"
   DatumHilfeAus
   End If
End Sub

In ein normales Modul kopierst Du diese Zweizeiler:
Sub DatumHilfeAn()
Sheets("Tabelle3").Select
Cells(1, 256).Value = 1
End Sub

Sub DatumHilfeAus()
Sheets("Tabelle3").Select
Cells(1, 256).Value = 0
End Sub

Diese schreiben im Wechsel in Zelle IV1 eine 1 für Hilfe an oder eine 0 für Hilfe aus (Du kannst auch eine andere Zelle bestimmen).
Dazu das wie folgt abgewandelte Ereignis
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
'falls Eingabe in Spalte A
If Target.Column = 1 And Cells(1, 256).Value = 1 Then
    Cells(Target.Row, 1).NumberFormat = "dd/mm/jjjj - hh:mm"
    Cells(Target.Row, 1) = Date & " - " & Cells(Target.Row, 1)
End If
Application.EnableEvents = True
End Sub

und Du kannst per Knopfdruck die Hilfe ein- und ausschalten.

Problem Jahreszahl und Sekunden ist damit noch nicht gelöst.
Vielleicht geht es in einer neueren Excelversion besser, man
könnte zur Not per VBA die Jahreszahl und die Sekunden löschen.
Das sollte aber eleganter funktionieren.
Siehe meine Antwort3, auch bei entsprechender Formatzuweisung und Code nur für Tag und Monat bringt excel immer das volle Datum.
Heute fällt mir dazu nichts mehr ein
mfg
schnallgonz

Antwort 9 von Petra0403 vom 11.06.2020, 17:14 Options

Hallo!
Ich benutze Excel 2003.
Eine automatische Sortierung bei Eingabe wäre mir am liebsten.
Mit dem Zitat meine ich nur, dass sich das heute eingegebene Datum morgen nicht automatisch mit ändert! Hab ich heute überprüft - es klappt.
Das mit dem "per Button ein- und ausschalten können" verstehe ich nicht so richtig. Willst du damit erreichen: bei "Hilfe ein" sind Änderungen in Spalte A möglich und bei "Hilfe aus" nicht? Klappt dann aber bei mir nicht. Der Button wechselt zwar die Anzeige Hilfe ein/Hilfe aus - aber in der Datei bleibt alles beim Alten. Wenn ich in Spalte A etwas lösche, dann bleibt stur das Datum stehen.
Das Löschen von ganzen Zeilen ist aber auch wichtig. Die abgearbeitete Dinge erhalten eine Endzeit in Spalte B und diese gesamten Zeilen werden dann um 05:00 Uhr des nächsten Tages gelöscht. Anschließend sollen sich die Lücken in der richtigen Sortierreihenfolge wieder schließen.

Gruß Petra

Antwort 10 von schnallgonz vom 11.06.2020, 19:09 Options

Hallo,
Zitat:
Willst du damit erreichen: bei "Hilfe ein" sind Änderungen in Spalte A möglich und bei "Hilfe aus" nicht?
so soll es sein.
Dass es bei Dir nicht funzt, liegt wahrscheinlich an
Sheets("Tabelle3").Select
Hier musst Du Deinen Blattnamen eintragen.
Das automatische Sortieren nach jeder Eingabe kannst Du selbst einrichten:
Zeichne mit dem Makrorecorder die gewünschte Sortieraktion auf und kopiere diesen Code in das Change-Ereignis in die Zeile nach "End If"
mfg
schnallgonz

Antwort 11 von Petra0403 vom 11.06.2020, 20:28 Options

Danke für die Antwort!

Auf Tabelle 1 hatte ich schon geändert - geht aber trotzdem nicht. Hilfe ein oder aus beim löschen bleibt immer das Datum stehen.

Gruß Petra

Antwort 12 von schnallgonz vom 11.06.2020, 22:54 Options

Hallo Petra,
erstmal der Code ohne das "Dilettanten-Select" ;-)
Sub DatumHilfeAn()
Sheets("Tabelle1").Cells(1, 256).Value = 1
End Sub

Sub DatumHilfeAus()
Sheets("Tabelle1").Cells(1, 256).Value = 0
End Sub

Bei mir funzt es,
hast Du
If Target.Column = 1 [b]And Cells(1, 256).Value = 1[/b] Then
im Change-Ereignis ergänzt (Antwort8)?

Falls es daran nicht liegen sollte, schick mir eine PN, dann können wir die Datei per mail austauschen, es wird irgendein Übertragungs- oder Eingabefehler sein.
Vertrauliche Daten solltest Du vorher entsorgen.

mfg
schnallgonz

Antwort 13 von Petra0403 vom 12.06.2020, 16:12 Options

Guten Tag du treuer Helfer!
Ich hab mich an Antwort 12 gehalten und jetzt klappt es!
Wenn da nicht die Jahreszahl und die Sekunden wären.
Du hattest die Notvariante mit VBA angedeutet.
Wäre mir eigentlich egal, Hauptsache ich kann die Spaltengröße schön klein halten.
Hilfst du mir?
mfG und Danke

Antwort 14 von Petra0403 vom 12.06.2020, 17:18 Options

Hallo Schnallgonz!

Habe gerade das mit deinem Sortiervorschlag umgesetzt.
Klappt einwandfrei.
Kann ich den Button "HilfeAn" auch verschieben? Ich hab den jetzt an einer ungünstigen Stelle platziert, weil ich dachte, dass ich ihn genau wie den Sortierbutton verschieben kann - geht aber nicht.
Was muß ich ändern, wenn ich statt Spalte A die Spalte B zum Sortieren nehmen möchte.
Weil ich gerade mal beim Fragen bin: Kann man in Excel die Spaltenüberschriften nur einmal (oben) angeben, sie aber auf allen Blätter mit ausdrucken?
Nochmal mfG Petra

Antwort 15 von schnallgonz vom 12.06.2020, 21:35 Options

Hallo
Zitat:
Ich hab mich an Antwort 12 gehalten und jetzt klappt es!

das ist doch schon mal gut.
Zur Jahreszahl und den Sekunden:
irgendwie macht Excel hier nicht genau das, was man ihm sagt.
Die Sekunden kann man per VBA einfach löschen, die Jahreszahl
zwar auch, aber dann hast Du kein Datum mehr.

Bemerkenswert ist, dass Excel die Eingabe erst als Datum erkennt,
wenn sie quasi erneut bestätigt wird, man also in die Eingabezeile
geht und <<Enter>> drückt.
Simuliert man diese Tasteneingaben, bekommt man das Ergebnis,
das Du möchtest.

Hier der neue Code für das Changeereignis.
Kopiere ihn anstelle des bisherigen und fertig.
(Dem ein oder anderen wird sich der Magen umdrehen, aber bei
mir funzt es)
Private Sub worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
'falls SpalteA aktiv und "IV1" = 1
If Target.Column = 1 And Cells(1, 256).Value = 1 Then
    'Format setzen
    Cells(Target.Row, 1).NumberFormat = "d/m/ h:mm"
    'aktuelles Datum zur Eingabe = Uhrzeit hinzu
    Cells(Target.Row, 1) = Date & " " & Cells(Target.Row, 1)
    'IV1 auf 0, um Zelle zu bestätigen
    Cells(1, 256).Value = 0
    'Focus zurück zur Startzelle; erforderlich, weil
    'Markierung nach Eingabe nach unten verschoben wird = Standard
    ActiveCell.Offset(-1, 0).Activate
    'jetzt Eingabe bestätigen
    SendKeys "{F2}", True
    SendKeys "{ENTER}", True
    'IV1 auf 1 zurückstellen
    Cells(1, 256).Value = 1
End If
Application.EnableEvents = True
End Sub

Noch etwas:
das mit der 1 und 0 in "IV1" ist auch eine Krücke.
falls Du Spalten einfügen willst, geht das nicht, weil dann
der Wert 1 oder 0 in der letzten Spalte steht.
dann müßte man eine Zelle weiter links wählen oder in
einer Hilfstabelle und natürlich den Code auf den neuen Bezug anpassen.

mfg
schnallgonz

Antwort 16 von schnallgonz vom 12.06.2020, 21:56 Options

Hi,
ich hätte vor dem Antworten aktualisieren sollen...

Der Code aus Antwort 15 bringt das, was Du möchtest,
noch ohne Sortieranweisung.

Zu Deinen 3 letzten Fragen:
Button verschieben
das geht natürlich:
Rechtklick neben eine Symbolleiste, <<Steuerelement-Toolbox>> wählen
in dieser Symbolleiste auf das Dreieck klicken,
jetzt bist Du im Entwurfsmodus, d.h. wenn Du mit der Maus auf den
Button geht, wird der Zeiger zum Kreuz;
draufklicken und verschieben, abschließend Entwurfsmodus beenden
mit erneutem Klick auf das Dreieck

SpalteB anstatt A als Sortierkriterium
Im Code vom Makrorecorder steht u.a.:
Selection.Sort Key1:=Range("A1").......
Anstatt "A1" setzt Du "B1"

Spaltenüberschriften auf jeder Druckseite
Menü <<Datei>> <<Seite einrichten>>
Reiter <<Tabelle>> dort ins Feld <<Drucktitel>> klicken und dann
in die Überschriftenzeile klicken
es erscheint dann $1:$1 falls Du die erste Zeile wählst

Vielleicht sehen die menüs in Excel2003 etwas anders aus,
dann suche nach Drucktitel in der Hilfe

Und nochmal der Tipp
bevor Du mit dem Code experimentierst, Daten zuerst sichern!

mfg
schnallgonz

Antwort 17 von Petra0403 vom 12.06.2020, 22:56 Options

Hi!
Du hast mir echt schon weiter geholfen. Meine Fragen hast du ganz super beantwortet. Ich danke dir sehr dafür.
Leider scheint das mit dem neuen Code nicht ganz zu klappen.
Starte ich meine Datei neu (mit dem neuen Code) und mache ein paar Testeingaben, dann klappt es super, aber sowie ich mal auf meinen Sortierbutton klicke, dann sortiert er alles prima, aber danach erscheint bei einer neuen Zeiteingabe wieder das Datum von 00.01.1900 mit der eingegebenen Zeit. Schließe ich ohne zu speichern und öffne die Datei wieder geht erst alles wieder OK, klicke ich aber zum Beispiel auch auf den HilfeAN/Aus Button ist der Erfolg wieder futsch - auch hier das Datum von 00.01.1900. Siehst du hier noch einen Weg?
Ich hab mich schon so nah an meinem Ziel gesehen. Ohne dich hätte ich das nie hinbekommen.
Kann man die Sortierung vielleicht auch noch automatisch mit einbinden. So das, wenn ich die fertigen Zeilen lösche, die freien Zeilen automatisch wieder verschwinden, bzw. wenn mal eine Sache nachgeschrieben wird (also eine frühere Zeit als die letzte), sie dann automatisch an die richtige Stelle springt?
Aber eigentlich wäre ich auch so schon ganz zufrieden, wenn der obige Fehler nicht mehr auftritt.
Gruß Petra

Antwort 18 von schnallgonz vom 13.06.2020, 20:50 Options

Hallo Petra,
kein Grund aufzugeben.
Ursache dürfte das Sortieren sein. Die Frage ist, ob die Tabelle Überschriften enthält oder nicht, also ob die Zeile 1 mitsortiert wird oder nicht.
Wird sie mitsortiert, verschwindet auch die 1 aus IV1 und damit wird das Ereignis abgeklemmt, d.h das Datum wird nicht beigestellt siehe Antwort 2
Man kann das Sortieren der ersten Zeile unterbinden, indem man Excel sagt, dass die Tabelle eine Überschrift enthält, siehe fetten Codeabschnitt:
 Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, [b]Header:=xlYes[/b], _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Wie ich sagte, die IV=1 Variante ist eine Krücke.
Hat Deine Tabelle eine Überschrift, sollte es wie beschrieben funktionieren, sonst müßte man den Ein-Ausschalter anders positionieren.
Soll das automatische Sortieren nur bei "Hilfe ein" laufen, füge obige Codezeile vor dem "End If" ein, sonst nach dem "End If" folgendes:
If Target.Column = 1 Then
    Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End If
Mich persönlich würde das Sortieren nach jedem "Enter" kirre machen: Du änderst z.B. in Zeile 210 etwas und schwupp wird alles sortiert und A210 findet man z.B. in A10, d.h. man hat kaum Gelegenheit, die Eingabe zu kontrollieren.
Aber: jeder Jeck ist anders
Deshalb:
nächster Versuch

mfg
schallgonz

Antwort 19 von Petra0403 vom 13.06.2020, 22:32 Options

Hi treuer Freund!

Ich habe natürlich eine Überschrift (4 Zeilen). Die Tabelle sieht folgendermaßen aus (Spalte A bleibt meist leer, muß aber mitsortiert werden. Sortierkriterium ist die Spalte B in der auch das gewünschte Format erscheinen soll, damit die Sortierung von 05:00 - 05:00 Uhr und auch unter Berücksichtigung verschiedener Tage klappt.)

---B--------C-----D-----E-----F------G-----------H--------------I
Beginn/Ende/Süd/Nord/Ort /Arbeiten/Störungen/Ursachen

Solange in Spalte C keine Endzeit eingetragen ist, wird nur sortiert nach B. Wenn eine Endzeit in C eingetragen wird, soll um 05:00 Uhr die gesamte Datei in ein anderes Verzeichnis zur Sicherung kopiert und danach alle beendeten Zeilen gelöscht werden. Durch das Sortieren - du hast recht automatisch wäre ungünstig - verschwinden dann ja alle Leerzellen und es stehen nur noch Dinge drin, die noch nicht abgearbeitet sind.
Kann man den Hilfe Ein/Ausschalter (IV=1/0) nicht auf ein anderes Tabellenblatt legen, welches dann einfach ausgeblendet wird (zur Sicherheit)?
So richtig komme ich mit deinem letzten Vorschlag nicht klar.
Sowie ich eine Überschrift einfüge ist schon alles vorbei.
Ich schreibe nur in A1 bis I1 etwas hinein und schon ändert sich das Format wieder zu 01.00.1900. wenn ich eine neue Zeit probiere.
Auch ohne Überschrift, wenn ich nur Hilfe Ein/aus betätige - danach geht es nicht mehr?????
Du sagtest nächster Versuch - hab ich noch einen?

Danke
Petra

Antwort 20 von Petra0403 vom 13.06.2020, 22:58 Options

Ich hab den Fehler gefunden!

1. Spalte IV war falsch formatiert - dadurch stand dort immer 01.00.1900 - hab ich auf Standard geändert
2. hast du ja gefunden, aber wie kann ich 3 oder 4 Zeilen Überschrift einschließen? Bei mir klappt nur 1. Ab der 2. Zeile wird die schon mitsortiert.

Ich glaube es geht vorwärts. Dank deiner professionellen Hilfe.

mfG Petra

Ähnliche Themen

RPC-Server ist nicht verfügbar / Datum & Uhrzeit
Poseidon  25.01.2007 - 1445 Hits - 3 Antworten

Uhrzeit und Datum
Goliath  26.01.2007 - 84 Hits - 2 Antworten

Datum und Uhrzeit
Mustang351  22.03.2007 - 87 Hits - 3 Antworten

Falsche Uhrzeit
strahleauge  05.04.2007 - 230 Hits - 3 Antworten

Löschen einer Zeile bei Vergleich Datum/Uhrzeit
chriskuf  06.07.2007 - 56 Hits - 1 Antwort

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026