Datum und Uhrzeit getrennt - automatisch

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


Excel-Version: Ab 8.0
nach unten

Betrifft: Datum und Uhrzeit getrennt - automatisch
von: Lela Sommer
Geschrieben am: 21.06.2002 - 07:54:03

Hallo!

Meine Suche und auch meine Versuche sind leider fehlgeschlagen.

Ich habe hier ein Makro (ich glaube von Hans Herber), das bei Eintrag in Zelle A1
in den danebenliegenden Zellen Datum und (getrennt) die Uhrzeit ausgibt. Und zwar immer untereinander.

Sub Eintragen()
Dim intRow As Integer
intRow = Cells(Rows.Count, 2).End(xlUp).Row + 1
If IsEmpty(Cells(1, 2)) Then intRow = 1
If Application.Caller.Address <> "$A$1" Then Exit Sub
Cells(intRow, 2) = Application.Caller
Cells(intRow, 3) = Format(Date, "dd.mm.yy")
Cells(intRow, 4) = Format(Time, "hh:mm")
End Sub


Leider schaffe ich es nicht, das (den?) Makro so abzuändern, dass
bei Eintrag in Spalte D in die Spalte E das Datum und in Spalte F
die Uhrzeit und bei einem Eintrag in Spalte I in Spalte G das
Datum und in H die Uhrzeit ausgegeben wird und zwar immer nur
für die betreffende Zeile - nicht untereinander.
Die Tastenkombinationen zum Eintragen von Datum und Uhrzeit
in nichtaktualisierender Form sind mir bekannt.

Wenn jemand eine Lösung dafür weiß, würde ich um Hilfe bitten.


Liebe Grüsse aus Wien
Lela Sommer


nach oben   nach unten

Re: Datum und Uhrzeit getrennt - automatisch
von: Rainer
Geschrieben am: 21.06.2002 - 12:41:53

Liebe Lena!

Öffne den VBA-Editor und klicke im Projektfenster doppelt auf die Tabelle, in der du die Datums- und Zeiteinträge haben möchtest. Gib dort folgenden Code ein:


Private Sub Worksheet_Change(ByVal Target As Range)
Dim intRow As Integer
    ' Wenn mehrere Zellen markiert sind, Meldung ausgeben und Prozedur verlassen
    If Target.Cells.Count <> 1 Then
        MsgBox "Nur 1 Zelle markieren!"
        Exit Sub
    End If
    If Target.Column = 4 Then
        Target.Offset(0, 1).Value = Date
        Target.Offset(0, 2).Value = Time
    End If
    If Target.Column = 9 Then
        Target.Offset(0, 1).Value = Date
        Target.Offset(0, 2).Value = Time
    End If

End Sub

Dieser Code bewirkt, dass bei einer Änderung des Zellinhaltes in einer der Spalten D oder I jeweils in die rechts daneben stehende bzw. übernächste Zelle das Datum bzw. die Uhrzeit geschrieben wird. Target = geänderte Zelle, Offset (Zeile, Spalte), wobei Werte kleiner 0 Verschiebungen nach links bzw. nach oben sind, 0 eben gleiche Zeile/Spalte, größer 0 wird die entsprechende Zelle in Zeile/Spalte nach unten bzw. rechts bearbeitet. Probiere das einfach mit verschiedenen Zahlenwerten aus.

Lieben Gruß aus Graz
Rainer



nach oben   nach unten

Re: Datum und Uhrzeit getrennt - automatisch
von: Lela Sommer
Geschrieben am: 21.06.2002 - 13:47:58

Hallo Rainer!
Vielen Dank für deine rasche Antwort. Die Lösung ist sehr gut
und mit deiner Erklärung dazu, auch für mich abwandelbar. Hab es
sogar geschafft, einen Eintrag links von der Spalte, in der die
Veränderung durchgeführt wird, machen zu lassen.

Liebe Grüsse nach Graz
Lela Sommer


nach oben   nach unten

Re: Datum und Uhrzeit getrennt - automatisch
von: Sergio
Geschrieben am: 21.06.2002 - 14:59:36

Hallo Rainer,

das ist ein Thema was mich sehr interessiert. Doch leider bin ich ein wenig unbeholfen darin. Kannst Du vielleicht ein paar Änderungen für mich vornehmen?

Column 1,2,3 sollte so bleiben; in Column 4 sollte die Zeit weiter laufen und in Column 5 sollte die Differenz von Column 4 und 3 erscheinen.

THX, Sergio


nach oben   nach unten

Re: Datum und Uhrzeit getrennt - automatisch
von: Rainer
Geschrieben am: 21.06.2002 - 16:30:54

Lieber Sergio!

Ich hoffe, dass ich dich richtig verstanden habe - du möchtest bei einem Eintrag in der Spalte D in die rechts daneben stehende Zelle der Spalte E den Wert aus Spalte D minus dem Wert aus der Spalte C haben (alle gleiche Zeile).

Beachte, dass du noch event. Absicherungen einfügen musst, v.a. bei Zeitangaben.


Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

    With Target
        ' Wenn mehrere Zellen markiert sind, nicht durchführen
        If .Cells.Count <> 1 Then
            MsgBox "Nur 1 Zelle verändern!"
            Exit Sub
        End If
        If .Column = 4 Then
            ' Schreibt eine Formel in die Spalte 5 (zB '=D4-C4')
            .Offset(0, 1).FormulaR1C1 = "=RC[-1]-RC[-2]"
            ' willst du nur den Wert hineinschreiben:
            .Offset(0, 1).Value = .Value - .Offset(0, -1).Value
        End If
    End With

End Sub

Lieben Gruß
Rainer

nach oben   nach unten

Re: Datum und Uhrzeit getrennt - automatisch
von: Sergio
Geschrieben am: 21.06.2002 - 18:00:43

Danke
LG
Sergio

 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Datum und Uhrzeit getrennt - automatisch"