Mit folgendem Code füge ich am Ende eines Bereiches neue Zellen ein:
Private Sub cbNeuerEintrag_Click()
Application.ScreenUpdating = False
ActiveSheet.Unprotect
Dim iHilf As Integer
Dim strName As String
strName = "GDaten"
Range(strName).Select
iHilf = Selection.Row + Selection.Rows.Count
Range(Cells(iHilf - 1, 2), Cells(iHilf - 1, 8)).Select
Selection.Copy
Selection.Insert Shift:=xlDown
ActiveSheet.Paste
Application.CutCopyMode = False
Cells(iHilf, 2) = ""
Cells(iHilf, 3) = ""
Cells(iHilf, 2).Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Application.ScreenUpdating = True
End Sub
Klappt auch bestens. Wenn aber gerade der obere Teil des Bereiches angezeigt wird - und also die neue Zeile im unteren unsichtbaren Teil der Liste eingefügt wird - bleibt im Anschluss die Anzeige so wie sie ist. Das heißt, dass die neue Zelle zwar selektiert ist, aber nicht angezeigt wird. Man muss dann erst nach unten scrollen, um zu den neuen Zellen zu gelangen.
Ich habe mir jetzt mit folgender Hilfskonstruktion beholfen:
Teilcode:
...
...
Range(strName).Select
iHilf = Selection.Row + Selection.Rows.Count
Application.ScreenUpdating = True
Range(Cells(iHilf - 1, 2), Cells(iHilf - 1, 8)).Select
Application.ScreenUpdating = False
Selection.Copy
Selection.Insert Shift:=xlDown
...
...
Damit geht es auch, ist halt nur nicht sehr ahnsehnlich, weil er bis zum Ende des Codes markierte Zellen zeigt.
Gibt's dafür eine elegantere Lösung?
Vielen Dank im Voraus
Grüße
Franz