Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender Navigationstipps
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
Anwender
Anzeige
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
Anzeige
AW: VBA - Zeilen kopieren
09.10.2003 01:05:47
WalterK
Hallo Matthias!

Vielen Dank erstmal, werde es gleich ausprobieren!

Servus, Walter

320 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige