599 Aufrufe
Gefragt in Tabellenkalkulation von
Hallo zusammen,

ich entwerfe gerade eine Excel Tabelle um eine Art Auftrag damit zu verfolgen. Dabei möchte ich gerne ein Datum automatisch einfügen wenn in einer Zeile eine neue Artikelnummer eingetragen wird.

If Intersect(Target, Range("B5:B1000")) Is Nothing Then Exit Sub
     If Target.Count > 1 Then Exit Sub 'Bearbeiten mehrerer Zeilen wird abgefangen
     If Target = "" Then
         Target.Offset(0, -1).ClearContents
         Else:
         Target.Offset(0, -1) = CDate(Format(Now, "dd.mm.yyyy"))
    Exit Sub
     End If

Dazu dann wenn der Vorgang beendet wird "closed" soll dann dazu auch automatisch das Datum eingetragen werden.

If Intersect(Target, Range("M5:M200,N5:N200")) Is Nothing Then Exit Sub
     If Target.Count > 1 Then Exit Sub 'Bearbeiten mehrerer Zeilen wird abgefangen
     If Target = "closed" Then
         Target.Offset(0, 1) = CDate(Format(Now, "dd.mm.yyyy"))
         Target.Offset(0, 2) = "abgeschlossen"
     Else
       If Target = "" Then
         Target.Offset(0, 1).ClearContents
       End If
       Exit Sub
     End If


einzeln funktioniert das super aber leider nicht gemeinsam.

vielen Dank schon mal im voraus.

4 Antworten

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

versuch es mal so:

[code]Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("B5:B1000")) Is Nothing Then
  If Target.Count > 1 Then Exit Sub 'Bearbeiten mehrerer Zeilen wird abgefangen
  If Target = "" Then
     Target.Offset(0, -1).ClearContents
   Else:
     Target.Offset(0, -1) = CDate(Format(Now, "dd.mm.yyyy"))
  End If
  Exit Sub
End If

If Not Intersect(Target, Range("M5:M200,N5:N200")) Is Nothing Then
   If Target.Count > 1 Then Exit Sub 'Bearbeiten mehrerer Zeilen wird abgefangen
   If Target = "closed" Then
      Target.Offset(0, 1) = CDate(Format(Now, "dd.mm.yyyy"))
      Target.Offset(0, 2) = "abgeschlossen"
    Else
      If Target = "" Then Target.Offset(0, 1).ClearContents
   End If
End If

End Sub[/code]

Gruß
M.O.
0 Punkte
Beantwortet von
Super vielen Dank hat mir sehr geholfen und es funktioniert jetzt.


viele Grüße
0 Punkte
Beantwortet von
Hallo Community!

oder auch so!

Gruß Nighty

[code]Private Sub Worksheet_Change(ByVal Target As Range)
    Call EventsOff
    Call DeinMakro1(Target)
    Call DeinMakro2(Target)
    Call EventsOn
End Sub

Sub DeinMakro1(TargetAdd As Range)

End Sub

Sub DeinMakro2(TargetAdd As Range)

End Sub
Public Sub EventsOff()
    With Application
        .DisplayAlerts = False
        .ScreenUpdating = False
        .EnableEvents = False
        .Calculation = xlCalculationManual
    End With
End Sub
Public Sub EventsOn()
    With Application
        .DisplayAlerts = False
        .ScreenUpdating = True
        .EnableEvents = True
        .Calculation = xlCalculationAutomatic
    End With
End Sub[/code]
0 Punkte
Beantwortet von
Hallo Community

sollte True sein

[code]Public Sub EventsOn()
    With Application
        .DisplayAlerts = True
        .ScreenUpdating = True
        .EnableEvents = True
        .Calculation = xlCalculationAutomatic
    End With
End Sub[/code]
...