Ich habe im Archiv einen tollen VBA-Code gefunden, der es ermöglicht, per Doppelklick auf eine Zelle ein Fenster zu öffnen und dort einzugeben, wie viele Zeilen ich nach der aktuellen Zeile (also nach unten) einfügen will.
ABER: Es es wird beim Einfügen (egal wie viele Zeilen eingefügt werden sollen) nicht nur diese neue Zeile eingefügt, sondern oberhalb der eingefügten Zeile(n) stets eine Leerzeile zusätzlich eingefügt.
Das ist lästig, weil ich die Tabelle "lückenlos" erweitern will, mit kopierten Formeln und Formatierungen.
Hat jemand einen Tipp, wie das Einfügen einer zusätzlichen (!) Leerzeile verhindert werden kann?
Vielen Dank im Voraus!
Gruß
Michael
Nachfolgend der VBA-Code:
---------
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, cancel As Boolean)
Dim zeilenanzahl As Long
Dim Zelle As Range
Dim x As Integer
x = 2
Dim i As Integer
Dim quelle As Range
Dim ziel As Range
Set quelle = ActiveCell 'bezieht sich auf die ausgewählte Zelle
Set ziel = quelle.Offset(1, 0)
Application.ScreenUpdating = False
If Target.Column = 1 Then 'Hier wird die Spalte "A" (1) auf Doppelklick überwacht
On Error GoTo ausstieg
zeilenanzahl = InputBox("Wieviel Zeilen?", "Zeilen einfügen")
ziel.EntireRow.Insert shift:=xlDown
ziel.EntireRow.Insert shift:=xlDown
For i = 1 To zeilenanzahl
quelle.EntireRow.Copy
quelle.EntireRow.Offset(x, 0).PasteSpecial
quelle.EntireRow.Offset(x, 0).SpecialCells(xlCellTypeConstants).ClearContents
quelle.EntireRow.Offset(x + 1, 0).Insert shift:=xlDown
x = x + 1
Next i
'####################################
'Wenn auch nach dem eingefügten Bereich eine Leerzeile sein soll
'dann einfach diese Code-Zeile auskommentieren
quelle.EntireRow.Offset(x, 0).Delete
'####################################
quelle.Offset(2, 0).Select
End If
ausstieg:
Application.CutCopyMode = False
cancel = True
Exit Sub