eine Sub kopiert eine Zeile und fügt diese Zeile 50x unterhalb wieder ein, dabei wird der ganze Inhalt der 50 Zeilen gelöscht.
in der Spalte E wird allerdingt eine Change Methode ausgeführt, die besagt, dass falss man den Wert in Spalte E setzt dieser im Nachhinein nicht mehr geändert wird (ganz normale msgbox)
--> Wenn ich nun diese Zeile kopiere und in E etwas drin steht, dann führt es mir diese Methode 50x aus.... (momentan lösche ich immer den wert in Spalte E in der zu kopierenden Zeile, aber der Wert muss natürlich bleiben...
wie unterdrücke ich dieses Event?
Code:
Sub fuenfzigNeueZeilen()
Application.EnableEvents = False
Dim Zelle As Range
Dim letzteZeile As Long
Dim ws As Worksheet
Dim copZeil As Long
Set ws = Worksheets("Project Schedule")
ws.Unprotect "report"
Application.ScreenUpdating = False
ws.Rows(16).Locked = False
'copZeil = ws.Rows(16)
If ws.Range("B16") = 0 Then
MsgBox "You have to fill in data in cell -B16- to add new lines!", vbInformation + vbOKOnly
Exit Sub
End If
Rows(16).Copy
letzteZeile = ws.Range("B1048576").End(xlUp).Row
MsgBox letzteZeile
'sonst wird jedes mal die selection.change Methode ausgeführt
ws.Rows(16).Range("E16").Clear
ws.Rows(16).EntireRow.Copy
If Cells(16, 5) "" Then Cells(ActiveCell.Row + 1, 5) = ""
ws.Rows(letzteZeile + 1 & ":" & letzteZeile + 50).Insert Shift:=xlDown
For Each Zelle In ws.Range(ws.Cells(letzteZeile + 1, 1), ws.Cells(letzteZeile + 50, 255). _
End( _
xlToLeft))
If Not Zelle.HasFormula Then Zelle.ClearContents
Next Zelle
' ws.Rows(16).Range("E16").value = worksheets("hilfstabelle").
ws.Cells(letzteZeile + 1, 1).Select
ws.Protect password:="report", _
AllowFiltering:=True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True
Application.EnableEvents = True
End Sub
Grüße,
Nati