AW: Musterdatei?
24.02.2022 13:31:38
UweD
Hallo
ich hatte zuerst zu kompliziert gedacht...
Das hier muss in den Codebereich von "DieseArbeitsmappe"
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Const APPNAME = "Workbook_SheetChange"
Dim TB As Worksheet, SP As Integer, LR As Long, Zeile As Long
SP = 6 'Spalte F
Set TB = Sheets("Jahresübersicht")
On Error GoTo Fehler
Select Case ActiveSheet.Name
Case TB.Name
'Mach nix
Case Else
If Target.Count > 1 Then
MsgBox "Bitte nur eine Zelle ändern"
With Application
.EnableEvents = False
.Undo
.EnableEvents = True
End With
Exit Sub
End If
If Target.Column = SP Then 'Wenn letzte Änderung in F gemacht wurde
Zeile = Target.Row
If WorksheetFunction.CountBlank(Cells(Zeile, 1).Resize(1, SP - 1)) = 0 Then
'alle vorherigen Zellen sind ausgefüllt
LR = TB.Cells(TB.Rows.Count, "A").End(xlUp).Row + 1 'erste freie Zeile in Spalte A
With Application
.EnableEvents = False
ActiveSheet.Cells(Zeile, 1).Resize(1, SP).Copy TB.Cells(LR, 1)
.EnableEvents = True
MsgBox "Daten wurden übertragen"
End With
Else
'nicht alle Zellen sind gefüllt
MsgBox "Es fehlen Eingaben in A-E"
End If
End If
End Select
'*** Fehlerbehandlung
Err.Clear
Fehler:
Application.EnableEvents = True
If Err.Number 0 Then MsgBox "Fehler in Sub """ & APPNAME & """" & vbCrLf _
& "Fehlernummer: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub
LG UweD