HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA - Zeilen kopieren

VBA - Zeilen kopieren
08.10.2003 23:22:52
WalterK
Hallo und schönen Abend!

Kann folgendes realisiert werden?

Habe eine Tabelle mit Formeln und Formatierungen erstellt und bis Zeile 40 kopiert.
In Spalte A wird aufsteigend ab Ziffer 1 gezählt, in Spalte B werden Daten eingegeben. In den anderen Spalten finden dann die Berechnungen statt.

Nach der Eingabe und Verlassen der Zelle in Spalte B und wenn zugleich in Spalte A der zweithöchste Wert steht, soll die gesamte Zeile, in der der höchste Wert in Spalte A steht, in die nächsten 5 Zeilen kopiert werden usw.

Es soll also immer die letzte Zeile ohne Daten (aber mit Formeln und Formatierungen) in die nächsten 5 Zeilen kopiert werden.

Besten Dank im voraus
Walter

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Benutzer
AW: VBA - Zeilen kopieren
09.10.2003 00:40:45
Matthias G
Hallo Walter,
folgender Lösungsvorschlag (falls ich dich richtig verstanden habe):

in ein normales Modul folgender Code:
Option Explicit
Sub FillLine(z As Long)
Const LetzteSpalte = 5 'bis Spalte E
Const AnzahlZeilen = 5
Dim t As Range
Set t = ActiveCell
Application.ScreenUpdating = False
Application.EnableEvents = False
Range("A12:C12").Select
Range(Cells(z, 1), Cells(z, LetzteSpalte)).Select
Selection.AutoFill Destination:=Range(Cells(z, 1), Cells(z + AnzahlZeilen, LetzteSpalte)), Type:=xlFillDefault
Cells(z + 1, 2).ClearContents 'Sicherheitshalber löschen
t.Select
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

Im Beispiel werden die Spalten bis E runterkopiert (Konstante "LetzteSpalte")
Du kannst "AnzahlZeilen" auch auf "1" setzen und immer nur eine Zeile runterkopieren.
Der ScreenUpdating-Befehl ist da, damit es nicht so flackert.

Als Nächstes in das Codemodul der betreffenden Tabelle folgenden Code:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Row = Range("A65536").End(xlUp).Row Then _
FillLine (Target.Row)
End Sub

Wichtig ist, dass das SelectionChange-Modul in das Codemodul der Tabelle kommt (im Projektexplorer des VBA-Editors Doppelklick auf (z.B.) "Tabelle1"!
Sonst wird es beim Selection-Change-Ereignis nicht ausgeführt.

Viel Erfolg,
Matthias
AW: VBA - Zeilen kopieren
09.10.2003 01:05:47
WalterK
Hallo Matthias!

Vielen Dank erstmal, werde es gleich ausprobieren!

Servus, Walter

Meistgelesene Forumthreads (12 Monate)