1.3k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo,
ich arbeite gerade an einer Tabelle bei der die aktuelle Uhrzeit in z.B. Zelle 2/7 eingetragen wird, nachdem eine Eingabe in Zelle 2/6 gemacht wurde.
Als nächstes wird dann in Zelle 3/6 etwas eingetragen und passend dazu soll in der Zelle 3/7 wieder die aktuelle Uhrzeit eingetragen werden.
Diese Liste soll von oben nach unten gefürt werden.

Ich bin leider VOB Anfänger, habe mir aber folgendes überlegt und zusammengesucht:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim i As Integer
i = 0
Do Until Cells(i, 6) <> ""
i = i + 1
If Cells(i, 6) = "" Then Exit Do

If Cells(i, 6) <> "" Then Cells(i, 7) = Now

End Sub


Dieser Code funktioniert leider nicht.
Hat jemand eine Idee, wie ich mein Problem lösen kann?

Ich bin für alle Tipps wirklich dankbar!

Gruß
Schoko_im_Tee

3 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

keine Ahnung, ob ich dich richtig verstanden habe.
Das folgende Makro ist das VBA-Projekt des betreffenden Arbeitsblattes einzutragen.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

'Makro beenden wenn nicht in Spalte F angesprochen wird
If Target.Column <> 6 Then Exit Sub
'aktuelles Datum und Uhrzeit in Spalte G eintragen
Cells(Target.Row, 7) = Now

End Sub


Gruß

M.O.
0 Punkte
Beantwortet von
Hallo M.O.,

danke für deine Antwort!

Das Problem ist, dass die Zellen nicht mit der Maus (Cursor) markiert werden. Die Spalte 6 wird automatisch gefüllt, wenn in einer anderen Tabelle etwas eingetragen wird. Nach diesem Eintrag soll in Spalte 7 die aktuelle Uhrzeit eingetragen werden.

Der Befehl "Target" funktioniert doch nur, wenn die Zelle mit der Maus markiert wurde, oder?

Gruß
Schoko_im_Tee
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

das hast du aber nicht in deiner Problembeschreibung geschreiben :-(. Dann funktioniert nämlich auch das Worksheet-Change-Ereignis nicht.

Auch dein Code kann nicht funktionieren, da das aktuelle Datum und die Uhrzeit immer in die erste Zeile geschrieben wird, sobald dort etwas steht.

Versuch es mal mit folgendem Code:

Private Sub Worksheet_Calculate()
Dim i As Integer

i = 1
Do Until Cells(i, 6).Value = ""
i = i + 1
Loop

If i > 1 Then i = i - 1

Cells(i, 7) = Now

End Sub


Der Code ist in das VBA-Projekts des entsprechenden Arbeitsblattes einzufügen.
Der Code funktioniert allerdings nur richtig, wenn nacheinander alle Zellen gefüllt werden. Wird nach Zelle F2 z.B. Zelle F5 gefüllt, so wird das Datum in G2 geschrieben!

Gruß

M.O.
...