Zelle nach Eingabe wieder löschen

Bild

Betrifft: Zelle nach Eingabe wieder löschen
von: Sven
Geschrieben am: 30.09.2015 18:37:30

Hallo,
ich habe folgendes VBA.
Wie kann diese verändert werden damit nach der Eingabe die Zelle in Spalte E wieder leer ist.
Würde mich über Hilfe freuen
Sven
https://www.herber.de/bbs/user/100507.txt

Bild

Betrifft: AW: Zelle nach Eingabe wieder löschen
von: KlausF
Geschrieben am: 30.09.2015 18:45:24
Hallo Sven,
wenn ich Dich richtig verstanden habe, dann
gib vor der Zeile "End if" ein:
Target.ClearContents
Gruß
Klaus

Bild

Betrifft: AW: Zelle nach Eingabe wieder löschen
von: ExtremeExceling
Geschrieben am: 30.09.2015 18:53:21
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim clearCell As Boolean
    If Not Intersect(Target, Range("E:E")) Is Nothing Then
        clearCell = False
        With Target
            Select Case .Value
                Case "1"
                    .Offset(0, 1).Value = Format(Now, "hh:mm")
                    clearCell = True
                Case "2"
                    .Offset(0, 3).Value = Format(Now, "hh:mm")
                    clearCell = True
                Case "3"
                    .Offset(0, -1).Value = Format(Now, "U")
                    clearCell = True
                Case "4"
                    .Offset(0, -1).Value = Format(Now, "K")
                    clearCell = True
                Case "5"
                    .Offset(0, -1).Value = Format(Now, "Z")
                    clearCell = True
            End Select
            'der gewünschte Teil
            If clearCell Then .Value = ""
        End With
    End If
End Sub

'

Private Sub Worksheet_Change(ByVal Target As Range)
'    If Not Intersect(Target, Range("E:E")) Is Nothing Then
'    If Target.Value = "1" Then _
'        Target.Offset(0, 1).Value = Format(Now, "hh:mm")
'    If Target.Value = "2" Then _
'        Target.Offset(0, 3).Value = Format(Now, "hh:mm")
'    If Target.Value = "3" Then _
'        Target.Offset(0, -1).Value = Format(Now, "U")
'    If Target.Value = "4" Then _
'        Target.Offset(0, -1).Value = Format(Now, "K")
'    If Target.Value = "5" Then _
'        Target.Offset(0, -1).Value = Format(Now, "Z")
'    End If
'End Sub


Bild

Betrifft: AW: Zelle nach Eingabe wieder löschen
von: ExtremeExceling
Geschrieben am: 30.09.2015 18:59:19
habe nich vergessen zu sagen diesen code einfach einfügen.
Ein ' Hochkomma kommentiert vBA Code aus. also macht das der Interpreter/Colpiler diesen Zeilen nicht beachtet
Das eine hohkomma ist verschoben sollte vor den 2.Text
also anstatt
'
Private Sub Worksh...
so
'Private Sub Worksh...

Bild

Betrifft: AW: Zelle nach Eingabe wieder löschen
von: Sven
Geschrieben am: 30.09.2015 19:05:46
perfect... funktioniert 1a
vielen lieben dank für die schnelle hilfe

Bild

Betrifft: AW: Zelle nach Eingabe wieder löschen
von: ExtremeExceling
Geschrieben am: 30.09.2015 19:27:56
habe noch bei mir einen Fehler endeckt der Code den ich zuvor geschrieben hatte, hat den fehler das wenn man ggf. etwas eintippt wie "J" das nicht im sinnvollen bedingungsbereich ist. die Zelle nicht wieder geleert wird. Der verbesserte Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    
    If Not Intersect(Target, Range("E:E")) Is Nothing Then
        With Target
            Select Case .Value
                Case "1"
                    .Offset(0, 1).Value = Format(Now, "hh:mm")
                Case "2"
                    .Offset(0, 3).Value = Format(Now, "hh:mm")
                Case "3"
                    .Offset(0, -1).Value = Format(Now, "U")
                Case "4"
                    .Offset(0, -1).Value = Format(Now, "K")
                Case "5"
                    .Offset(0, -1).Value = Format(Now, "Z")
            End Select
            'der gewünschte Teil
            '.Value = "" oder so wie KlausF Schrieb
            .ClearContents
        End With
    End If
End Sub

'hier bitte das hochkomma vor das Private.. stellen.
'

Private Sub Worksheet_Change(ByVal Target As Range)
'    If Not Intersect(Target, Range("E:E")) Is Nothing Then
'    If Target.Value = "1" Then _
'        Target.Offset(0, 1).Value = Format(Now, "hh:mm")
'    If Target.Value = "2" Then _
'        Target.Offset(0, 3).Value = Format(Now, "hh:mm")
'    If Target.Value = "3" Then _
'        Target.Offset(0, -1).Value = Format(Now, "U")
'    If Target.Value = "4" Then _
'        Target.Offset(0, -1).Value = Format(Now, "K")
'    If Target.Value = "5" Then _
'        Target.Offset(0, -1).Value = Format(Now, "Z")
'    End If
'End Sub


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zelle nach Eingabe wieder löschen"