Ereignisabfrage
30.05.2009 18:57:04
H.Schult
Ich habe hier ein VBA-Code, der bei Ausfüllung bestimmter Zellen die gesammte Zeile auf ein zweites Arbeitsblatt verschiebt. Dieses findet bei Ausfüllung der Zelle G8 statt. Der Code mußte folgendermaßen verändert werden. Es soll eine Überprüfung folgender Zellen stattfinden F8, G8, I8 und J8. Erst wenn alle Zellen ausgefüllt sind, soll eine Verschiebung stattfinden. Weiß einer von Euch eine entsprechende Lösung für mein Problem?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim loZeile As Long
Dim Sh As Worksheet
Dim chk As Boolean
loZeile = Target.Row
'--- Prüfungen------
If Target.Column 7 Then Exit Sub
If loZeile 33 Then Exit Sub
chk = False
For Each Sh In ActiveWorkbook.Sheets
If Sh.Name = Right(Cells(loZeile, 13), 4) Then
chk = True
Exit For
End If
Next
If chk = False Then
MsgBox "kein passendes Arbeitsblatt gefunden"
Exit Sub
End If
'----Kopieren und löschen-----------------------
Application.EnableEvents = False
Application.ScreenUpdating = False
Sh.Unprotect
Me.Unprotect
Rows(loZeile).Copy
Sh.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteFormulas
Rows(loZeile).EntireRow.Delete
Application.CutCopyMode = False
Me.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Sh.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
Gruß ACR