Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1096to1100
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeile an bestimmte Stelle kopieren

Zeile an bestimmte Stelle kopieren
williams
Hallo!
Ich habe noch eine Frage bzgl. meiner ersten VBA Programmierung.
Vor einer bestimmten Zeile sollen immer auf Knopfdruck einer oder mehrer Zeilen eingefügt werden können.
1. Die bestimmte Zeile vor der eingefügt werden soll ist die Zeile, in der mehrere Summen stehen. Diese ergeben sich aus den Inhalten der Zeilen davor. Die Summenzeile rückt also immer weiter nach unten. Wie finde ich sie nun?
2. Des weiteren soll eine Zeile mit richtiger Formatierung und Formeln - allerdings noch ohne Inhalt - vor die Summenzeile eingefügt werden.
Mein Ansatz hierzu:
Sub CopyRow()
Dim lngLetzte As Long
Dim wks As Worksheet
Set wks = ActiveSheet
With wks
.Range(.Rows(23), .Rows(23)).Copy
.Cells(lngLetzte + 1, 1).Insert
.Range(.Cells(lngLetzte + 1, 1), .Cells(lngLetzte + 1, 13)).ClearContents
End With
End Sub
Über eine Idee würde ich mich sehr freuen. Vielen Dank im Voraus.
Grüße
Tony

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zeile an bestimmte Stelle kopieren
25.08.2009 13:16:44
fcs
Hallo Tony,
ein Zusatzproblem, das beim Einfügen von Zeilen direkt oberhalb einer Zeile mit Summenformeln passiert ist, dass sich die Zellbezüge in den Summenformeln nicht automatisch anpassen. Das Makro muss dies also auch erledigen. Nachfolgendes Beispiel ggf. anpassen.
Alternative: Eine Leerzeile vor der Zeile mit den Summen lassen und in den Summenformeln bei den Bereichen diese Zeile in den Formeln mit einschließen. Weitere Zeilen dann immer vor der Leerzeile einfügen!
Gruß
Franz
Sub ZeileKopieren()
Dim wks As Worksheet, bereich As Range, LetzteZeile As Long, spalte As Long
Set wks = ActiveSheet
With wks
'Letzte Zeile ermitteln
LetzteZeile = .Cells(.Rows.Count, 1).End(xlUp).Row
'Leerzeile einfügen
.Rows(LetzteZeile).Insert
'Zeile 2  in Leerzeile kopieren
.Rows(2).Copy .Rows(LetzteZeile)
'Inhalte aus Zellen ohne Formel löschen
For spalte = 1 To .Cells(LetzteZeile, .Columns.Count).End(xlToLeft).Column
If Not .Cells(LetzteZeile, spalte).HasFormula Then
.Cells(LetzteZeile, spalte).ClearContents
End If
Next
'Summenformeln anpassen
For spalte = 1 To .Cells(LetzteZeile + 1, .Columns.Count).End(xlToLeft).Column
If .Cells(LetzteZeile + 1, spalte).HasFormula Then
If InStr(1, .Cells(LetzteZeile + 1, spalte).Formula, "=SUM") > 0 Then
'folgende Zeile ("R2C[0]") ggf. Anpassen, Summenberechnung beginnt hier in Zeile 2
.Cells(LetzteZeile + 1, spalte).Formula = "=SUM(R2C[0]:R[-1]C[0])"
End If
End If
Next
End With
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige