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

VBA Zeilen kopieren bis...

VBA Zeilen kopieren bis...
13.10.2008 13:13:04
Silvi
Hallo,
kann mir bitte mal jemand bei folgendem Makro helfen:
'Rows("2:2").Select
Selection.Copy
Range("A3").Activate
Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Activate
Loop
ActiveSheet.Paste
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Das Makro soll Formel aus Zeile 2 in die letzte Zeile kopieren und danach in Werte setzen, wieder in Zeile 2 springen, kopieren und wieder in die letzte freie Zeile springen und in Werte einfügen usw. bis der Wert in der letzten Zeile 0 ist.
Hoffentlich versteht mich jemand... wenn nicht lade ich nochmal eine Datei hoch.
Vielen Dank im voraus!
Gruß
Silvi

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Zeilen kopieren bis...
13.10.2008 13:30:33
Chris
Servus Silvi,

Sub tt()
Do
Rows(2).Copy Range("A65536").End(xlUp).Offset(1, 0)
Loop Until Range("A65536").End(xlUp).Offset(0, 0) = 0 'Or Range("A65536").End(xlUp).Offset(0, 0) _
.Row = 20
End Sub


Man sollte allerdings ein zusätzliches Abbruchkriterium miteinführen. Es könnte ja sein, dass die Formel niemals 0 wird.
das wäre hier z.B. das Or....Row = 20, nach 20 Zeilen wird abgebrochen.
Gruß
Chris

Anzeige
AW: Hab's wohl falsch verstanden...
13.10.2008 13:39:05
Chris
... allerdings ist mir immer noch nicht klar, was du eigentlich erreichen willst.
Gruß
Chris
Nö, Chris, Du hast es eher verstanden als ich. owT
13.10.2008 13:45:00
Yal
.
AW: VBA Zeilen kopieren bis...
13.10.2008 13:44:39
Silvi
Hallo,
vielen Dank, hat geklappt und funktioniert wuderbar!!!
Gruß
Silvi
AW: VBA Zeilen kopieren bis...
13.10.2008 14:05:05
Silvi
Hallo Chris,
tschuldigung, es funktioniert zwar, aber fehlt doch noch was, und zwar soll die Formel dann in der letzten Zeile immer in Werte gesetzt werden sonst habe ich bis in Zeile 5000 Formeln stehen, was ich vermeiden möchte.
Gruss
Silvi
AW: VBA Zeilen kopieren bis...
13.10.2008 14:19:02
Chris
servus Silvi,
dann so:

Sub tt()
Dim lngReihe as Long
Do
Rows(2).Copy  Range("A65536").End(xlUp).Offset(1, 0)
lngReihe = Range("A65536").End(xlUp).Offset(0,0).Row
Rows(lngReihe).Copy
Range("A65536").End(xlUp).Offset(0,0).PasteSpecial Paste:=xlPasteValues
Loop Until Range("A65536").End(xlUp).Offset(0, 0) = 0 'Or Range("A65536").End(xlUp).Offset( _
0, 0) _
.Row = 20
Application.CutCopyMode = False
End Sub


Gruß
Chris

Anzeige
AW: VBA Zeilen kopieren bis...
13.10.2008 14:26:00
Silvi
Danke Chris, das war's, jetzt gehts!
AW: VBA Zeilen kopieren bis...
13.10.2008 13:33:00
Yal
Hallo Sigi,

Sub Test()
Rows("2:2").Copy
ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End Sub


Nicht getestet.
Viel Erfolg
Yal

AW: VBA Zeilen kopieren bis...
13.10.2008 14:16:00
Silvi
Danke Yal,
aber das funktioniert nicht, weil dann ja immer der gleiche Wert in die letzte Zeile geschrieben wird. Hast Du meine Beispieldatei gesehen? Vielleicht wird dann mein Problem verständlich.
Gruss
Silvi
AW: VBA Zeilen kopieren bis...
13.10.2008 14:37:05
Yal
Hallo Silvi,
Jetzt ... habe ich deine Datei angechaut.
Also, Du möchtest in Tabelle1 die Formeln der Zeile 2 nach unten erweitern bis es genauso viele Zeile werden wie in Tabelle2 sind, diese Formeln aktualisieren und dann durch Wert ersetzen.
Soll diese "Durch Wert ersetzen" auch für die Zeile 2 gelten? Wenn Ja, ersetzte die 2 "A3" in "A2"

Sub Test()
Dim LetzteSpalte#
Dim LetzteZeile#
With Worksheets("Tabelle2")
LetzteSpalte = .Range("A2").End(xlToRight).Column
LetzteZeile = .Range("A1").End(xlDown).Row
End With
With Worksheets("Tabelle1")
.Range(.Range("A2"), .Cells(LetzteZeile, 1)).Select
Selection.FillDown
.Range(.Range("A2"), .Cells(LetzteZeile, LetzteSpalte)).Select
Selection.FillRight
ActiveSheet.Calculate 'Bei mir ist die aut. Berechnung ausgeschaltet!
.Range(.Range("A3"), .Cells(LetzteZeile, LetzteSpalte)).Copy
.Range("A3").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
End With
End Sub


Viel Erfolg
Yal

Anzeige
AW: VBA Zeilen kopieren bis...
13.10.2008 14:17:00
Yal
Hallo Silvi,
Probiere folgendes (Vorsichtig rangehen: löscht Daten --> "ClearContents")

Sub Test()
Rows("2:2").Copy
ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Selection.Range("A1").Select
On Error GoTo Catch
Do While Selection.Value  0
Selection.Offset(0, 1).Select 'Verursacht Fehler nach Spalte 256
Loop
GoTo Finally 'Keine Fehler: keine Null-Wert
Catch:
Intersect(Selection, Selection.EntireRow).ClearContents
Finally:
End Sub


Viel Erfolg
Yal

Anzeige

320 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige