Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Zeiten automatisch ermitteln und eintragen





Frage

Hallo, ich brauche Eure Hilfe!!! Ich hab ein Formular, indem Zeiten eingegeben werden sollen. Jetzt möchte ich, das wenn in Zelle z.B. in Zelle C5 ein x eingetragen wird, dann soll in der Zelle E5 die aktuelle Uhrzeit eingetragen werden. Wenn dann in der nächsten Zelle C7 ein x eingetragen wird, dann soll in F5 die nächste aktuelle Uhrzeit eingetragen werden und in Zelle G5 die Differenz und die gleiche Aktuelle Uhrzeit aus F5 soll in E7 stehen. Wenn dann in C8 eingetragen wir dann soll das geliche passieren. Beispiel: C E F G x 11:14 11:16 2 x 11:16 11:20 4 x 11:20 usw. Es soll festgestellt werden, wie lange ein vorgang dauert. Danke für Eure Mühe!!!! Gruß Elhamplo

Antwort 1 von JoeKe

Hallo Elhamplo,

vorrausgesetzt die "x" werden in C fortlaufend eingetragen kann ich dir folgendes anbieten:

In das VBA-Projekt deines Tabellenblattes:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set Target = Intersect(Target, Range("C:C"))
If Target Is Nothing Then Exit Sub
Dim x As Variant, zeile As Integer
zeile = Cells(Rows.Count, 3).End(xlUp).Row
For Each x In Range(Cells(1, 3), Cells(zeile, 3))
If x = "x" Then
Cells(zeile, 5) = Time()
End If
Next
End Sub


In F1 die Formel:
=E2

In G1 die Formel:
=F1-E1

Die beiden Formeln soweit wie nötig nach unten kopieren.

MfG

JöKe

Antwort 2 von Saarbauer

Hallo,

das Problem ist nur mit VBA zu lösen, da du mit Jetzt() zwar die aktuelle Zeit an diese Stelle bekommst, aber bei jeder Aktualisierung wird diese Automatisch mit geändert.

Gruß

Helmut

Antwort 3 von Elhamplo

Hallo,

danke für Eure Hilfe!!!

Ich hab den Code ausprobiert. Das Problem dabei ist, das er das datum jedesmal neu berechent und immer das aktuelle Datum in jeder Zeile einfügt. Wie kann man das ändern???

Gruß

Elhamplo

Antwort 4 von JoeKe

Hallo Elhamplo,

hab noch mal ein wenig gebastelt:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim zeile As Integer
zeile = Cells(Rows.Count, 3).End(xlUp).Row
If Cells(zeile, 3) = "x" Then
Cells(zeile, 5) = Time()
Cells(zeile, 3) = "X"
End If
End Sub


Die beiden anderen Formeln bleiben unverändert.

MfG

JöKe

Antwort 5 von Elhamplo

Hallo,

danke für Eure Hilfe!!! Sorry, das ich mich erst jetzt melde, hatte keine Zeit den Code eher auszuprobieren.

Vielen Dank für den Code. Funst beide einwandfrei!!!!

Danke!!!

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: