Zeile kopieren einfügen VBA, Excel-/Codefehler?

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Zeile kopieren einfügen VBA, Excel-/Codefehler?
von: Alex
Geschrieben am: 18.05.2015 10:19:34

Moin Leute,
angehängt habe ich eine Beispieldatei in der es darum geht Personal für ein Jahr (Januar bis Dezember) zu planen. In der Beispieldatei ist allerdings nur der Januar als Sheet aufgeführt, für die restl. Monate jeweils ein Sheet mehr.
Ich benutze für die Schaltfläche "Add Row above Cursorposition" den Code im Modul1,"Row_add"

Sub Row_add()
On Error GoTo ErrExit
If MsgBox(Prompt:="Do you want to ADD a Row ABOVE the Cursor-Position?", _
        Buttons:=vbYesNo, _
        Title:="AddRow") = vbYes Then
ActiveSheet.Unprotect
   Dim rConst As Range
    If Selection.Row > 1 Then
    Selection.Offset(-1).EntireRow.Copy
    Selection.EntireRow.Insert
    Application.CutCopyMode = False
    On Error Resume Next
    Set rConst = ActiveCell.EntireRow.SpecialCells(xlCellTypeConstants)
    On Error GoTo 0
    If Not rConst Is Nothing Then 'rConst.ClearContents
    With rConst
    .ClearContents
    .ClearComments
    End With
    End If
ActiveSheet.EnableAutoFilter = True
ActiveSheet.Protect , DrawingObjects:=True, Contents:=True, Scenarios:=True
Else: Exit Sub
End If
ErrExit:
ActiveSheet.EnableAutoFilter = True
ActiveSheet.Protect , DrawingObjects:=True, Contents:=True, Scenarios:=True
Exit Sub
End If
End Sub

Er bewirkt, dass die Zeile ÜBER der Cursorposition kopiert wird und auf der Curorposition eingefügt wird.
Diesen Code habe ich angepasst (von "Row_add_old" nach "Row_add"), um nicht nur die Werte der kopierten Zeile zu löschen, sondern auch evt. enthaltene Kommentare.
Nun zum Problem:
MANCHMAL, und das ist eben immer der schlimmste Fall für mich, funktioniert es reibungslos, manchmal jedoch schmiert Excel ab...
Ich weiß nicht, ob das evtl. an meinem Excel selbst liegen könnte, oder ob doch ein Fehler im Code ist... was bei meinen rudimentären Kenntnissen durchaus sein könnte.
Bisher habe ich bei der abgespeckten Beispielmappe diesen Fehler auch nicht erhalten.
Könnte es evtl. auch daran liegen, dass bei 11 weiteren Monatsblättern, die natürlich untereinander verknüpft sind, die Datenmenge Probleme bereitet.
Ich weiß es nicht!
Beispieldatei:
https://www.herber.de/bbs/user/97695.xlsm
Bin für JEDEN Tipp dankbar, Gruß
Alex

Bild

Betrifft: AW: Zeile kopieren einfügen VBA, Excel-/Codefehler?
von: Luschi
Geschrieben am: 18.05.2015 11:10:01
Hallo Alex,
Du mußt verhindern das Selection mehr als 1 Zeile umfaßt:


   If Selection.Rows.Count > 1 Then
      MsgBox "....", 16 + vbSystemModal, "falsche Markierung..."
      Exit Sub
   End If
Gruß von Luschi
aus klein-Paris

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zeile kopieren einfügen VBA, Excel-/Codefehler?"