Mit diesem Makro kann ich Zeilen einfügen.
Sub NeueZeileEinfügen()
Dim Zelle As Range
Dim Zeile As Long
Dim wksAktiv As Worksheet, wks As Worksheet
Dim arrSheets, varSheet
Zeile = ActiveCell.Row
Set wksAktiv = ActiveSheet
arrSheets = Array(wksAktiv.Name, "Tabelle2", "Tabelle3")
For Each varSheet In arrSheets
Set wks = ActiveWorkbook.Worksheets(varSheet)
With wks
.Activate
.Rows(Zeile).Copy
.Cells(Zeile, 1).Insert Shift:=xlDown
For Each Zelle In .Range(.Cells(Zeile, 1), _
.Cells(Zeile, .Columns.Count).End(xlToLeft))
If Not Zelle.HasFormula Then
Zelle.ClearContents
End If
Next Zelle
.Cells(Zeile, 5).Select
End With
Next varSheet
wksAktiv.Activate
End Sub
Das funtioniert auch wunderbar. Aber nur solange sich die kopierten Formeln auf die kopierte Zeile bezeihen.
Bei dieser Formel gibt es Probleme
=VERWEIS(1;0/(DF$100:DF110);DF$100:DF110)
1. Ich weiß nicht was der "1er" bedeutet2. Die Formel wird zwar korrekt kopiert aber eben nur kopiert.
Die Formel zeigt letzte Zahl einer Spalte an. Das geht aber nur, wenn man die Formel per Hand runter zieht.
=VERWEIS(1;0/(DF$100:DF110);DF$100:DF110)
=VERWEIS(1;0/(DF$100:DF111);DF$100:DF111)
=VERWEIS(1;0/(DF$100:DF112);DF$100:DF112)
=VERWEIS(1;0/(DF$100:DF113);DF$100:DF113)
Wenn die Formel mit oben angeführten Scrpt eingefügt wird bleibt sie auf DF110 "stehen" weil sie ja kopiert und nicht hinunter gezogen wird.
Frage1: Kann man vielleicht den Zellbezug DF$100:DF$101 irgenwie in DF$100:ZEILE() ändern?
Frage2: Was muss ich an dieser Formel oder dem obigen Script ändern damit beim Einfügen einer Zeile der Zellebezug nicht nur kopiert sondern veschoben wird?
Wenn mir wer helfen könnte wäre ich :-)
Gruß nightcab