AW: Bereich verschieben
06.10.2007 18:59:00
Daniel
Hi
kleiner Tip,
beschäfitge dich grundsätzlich mal mit Variablen und Typen von Variablen.
dein erster Fehler ist schon mal gleich, daß du z als Ganzzahl deklarierst (Dim z as long)
und dann aber Z den Wert der aktiven Zelle zuweisen wills.
das funktioniert nicht, wenn in der aktiven Zelle ein Text drin steht und macht auch sonst in deinem Makro überhaupt keinen Sinn.
zweiter Fehler ist, wenn du einen Zellbereich über RANGE addressieren willst, muß das so aussehen:
RANGE("A1:C10") das passt bei dir auch nicht, weil z ist ja nur eine Zahl und dann würde der Spaltenbuchstabe fehlen.
Dritter Fehler: du hast Tippfehler in deinen Variablenbenennungen, um das zu vermeiden arbeiten man mit OPTION EXPLICIT
4. Fehler: beim Zusammensetzen von Strings muß vor und nach dem &-Zeichen immer ein Leerzeichen stehen.
das liegt daran, daß das &-Zeichen noch für was anderes verwendet wird (ich glaube alls kennzeichnung einer Hex-Zahl) und es sonst nicht eindeutig wäre, was gemeint ist.
so müsste dein Makro aussehen:
Option Explicit
Sub Bereich_verschieben()
Dim z As Long, Lletzte As Long
z = ActiveCell.Row
Lletzte = IIf(Range("A65536") "", 65536, Range("A65536").End(xlUp).Row)
Range("A" & z & ":D" & Lletzte).Cut Destination:=Range("A" & z + 1 & ":D" & Lletzte +1)
End Sub
viel einfacher ist es aber, du fügst an der Stelle einfach die 4 Zellen ein, das hat den gleichen effekt:
Sub bereich_verschieben2()
Dim z As Long
z = ActiveCell.Row + 1
Range("A" & z & ":D" & z).Insert shift:=xlDown
End Sub