Clever-Excel-Forum

Normale Version: Excel VBA Überschreiben verhindern!!!
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

mit dem unteren Code habe ich versucht einige Daten zu Kopieren und in einem anderen Ort einzufügen.
Das Problem, dass ich manchmal die Daten beim Einfügen überschreibe.
wie kann ich den Code ändern, damit ich eine Fehlermeldung bekomme und das Überschreiben verhindert.
Vielen Danke für Ihre Hilfe.


Sub Kopieren_3Pers()
'
' Kopieren_3Pers Makro
'

'
    Range("C6:J8").Select
    Selection.Copy
    Range("B16").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Rows("15:15").Select
    Application.CutCopyMode = False
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub
Hallo

erstmal kann man den Code ein bissel kürzen


Code:
Sub Kopieren_3Pers()
   Range("C6:J8").Copy
   Range("B16").PasteSpecial Paste:=xlPasteValues
   Rows("15:17").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
   Application.CutCopyMode = False
End Sub

dann hast du ja hart codiert, dass in Zelle B16 eingefügt werden soll
aber da ja 3 neue Zeilen eingefügt werden, sollte doch die Zelle B16 dann immer leer sein

MfG Tom
Vielen Dank für die schnelle Antwort.
Ich habe andere Buttons und muss manchmal Daten von 4, 5 oder 7 Personen Kopieren und einfügen.
Da die Daten manchmal überschrieben wurden, möchte ich das vermeiden mit der Anzeige der Fehlermeldung und verhinderung des Überschreibens.
Hallo,

meinst Du so in der Art?

Code:
Sub Kopieren_3Pers()
  With Range("C6:J8")
     If WorksheetFunction.CountA(Range("B16").Resize(.Rows.Count, .Columns.Count).Value) > 0 Then MsgBox "Bereich nicht frei": Exit Sub
     .Copy
     Range("B16").PasteSpecial Paste:=xlPasteValues
     Rows("15:17").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
  End With
  Application.CutCopyMode = False
End Sub
Hier scheint es umd das gleiche Problem zu gehen
http://www.ms-office-forum.net/forum/sho...p?t=336359