Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
988to992
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
988to992
988to992
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Schleife

Schleife
08.07.2008 12:12:45
Otto
Hallo Experten,
Ich habe mit dem Makrorecorder ein Makro aufgenommen, das immer das gleiche wiederholt aber fuer die zellen x+1. Ich bin sicher dass es moeglich ist eine Schleife einzubauen die das automatisch macht, aber ich weiss nicht wie.
Unten ist das Code nur fuer 2 Reihen , den ich 200 mal wiederholt haben moechte. Ich glaube es ist klar was ich erreichen moechte, wenn man das Code sich anschaut.
Koennt Ihr mir Helfen?
Vielen Dank im Voraus fuer die Hilfe
Otto
Range("D11").Select
Selection.Copy
Range("E10").Select
ActiveSheet.Paste
Range("A13").Select
Application.CutCopyMode = False
Selection.Copy
Range("J10").Select
ActiveSheet.Paste
Range("A14").Select
Application.CutCopyMode = False
Selection.Copy
Range("K10").Select
ActiveSheet.Paste
Rows("11:14").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
Range("D12").Select
Selection.Copy
Range("E11").Select
ActiveSheet.Paste
Range("A14").Select
Application.CutCopyMode = False
Selection.Copy
Range("J11").Select
ActiveSheet.Paste
Range("A15").Select
Application.CutCopyMode = False
Selection.Copy
Range("K11").Select
ActiveSheet.Paste
Rows("12:15").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife
08.07.2008 12:33:00
Yusuf
Hi,
versuch es mal hiermit.
Die komentierten stellen kannst auch loeschen, hab ich nur da gelassen , damit du es nachvollziehen kannst.

Sub schleife()
For i = 11 To 211
'Range("D11").Select
Cells(i, 4).Select
Selection.Copy
'Range("E10").Select
Cells(i - 1, 5).Select
ActiveSheet.Paste
'Range("A13").Select
Cells(i + 2, 1).Select
Application.CutCopyMode = False
Selection.Copy
'Range("J10").Select
Cells(i - 1, 10).Select
ActiveSheet.Paste
'Range("A14").Select
Cells(i + 3, 1).Select
Application.CutCopyMode = False
Selection.Copy
'Range("K10").Select
Cells(i - 1, 11).Select
ActiveSheet.Paste
'Rows("11:14").Select
Range(Cells(i, 1), Cells(i + 3, 256)).Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
Next i
'Range("D12").Select
'Selection.Copy
'Range("E11").Select
'ActiveSheet.Paste
'Range("A14").Select
'Application.CutCopyMode = False
'Selection.Copy
'Range("J11").Select
'ActiveSheet.Paste
'Range("A15").Select
'Application.CutCopyMode = False
'Selection.Copy
'Range("K11").Select
'ActiveSheet.Paste
'Rows("12:15").Select
'Application.CutCopyMode = False
'Selection.Delete Shift:=xlUp
End Sub


Gruß
Yusuf

Anzeige
AW: Schleife
08.07.2008 13:20:58
Otto
Hi Yusuf!
Danke, es funktioniert perfekt!
Herzlichen Dank und einen schoenen Tag noch!
Otto

gern geschehen
08.07.2008 13:30:00
Yusuf
.

AW: Schleife
08.07.2008 13:36:00
Andi
Hi,
das geht auch ohne den ganzen Select-Krempel:

Sub tt()
Dim i
For i = 11 To 211
Cells(i, 4).Copy (Cells(i - 1, 5))
Cells(i + 2, 1).Copy (Cells(i - 1, 10))
Cells(i + 3, 1).Copy (Cells(i - 1, 11))
Range(Cells(i, 1), Cells(i + 3, 256)).Delete Shift:=xlUp
Next i
End Sub


Schönen Gruß,
Andi

AW: Schleife
08.07.2008 13:45:56
Yusuf
Hi,
stimmt, die beiden anderen Lösungen sind sehr viel eleganter und wenn die Datenmengen größer werden auch schneller.
Ich bin nicht so gut in VBA, aber meine Lösung ist so verstaendlich, dass er es beim naechsten mal (zwar nicht so elegant) aber selber hinbekommen koennte :)
Gruß
Yusuf

Anzeige
AW: Schleife
08.07.2008 13:54:00
Andi
Hi,
das stimmt, aber wenn man sich das ganze Select-Zeug erstmal angewöhnt hat, wird man es so schnell nicht wieder los. Dadurch wird der Code nicht nur langsamer, sondern auch unnötig unübersichtlich. Deshalb sollte man von Anfang an zumindest folgendes beherzigen:
Range("A1").Select
Selection.Tu_Irgendewas
kann man auch so schreiben:
Range("A1").Tu_Irgendwas
Das Select kommt vom Makrorekorder, der naturgemäß alles aufzeichnet, was man macht. In der Praxis sind Select und Activate völlig überflüssig, außer man möchte aus einem bestimmten Grund den User an eine bestimmte Stelle in der Mappe dirigieren.
Schönen Gruß,
Andi

Anzeige
AW: Schleife
08.07.2008 13:17:00
Gerd
Hallo Otto,
ungetestet.

Sub otto2()
Dim Zeile As Long
Application.ScreenUpdating = False
For Zeile = 11 To 210
Range("D" & Zeile).Copy Destination:=Range("E" & Zeile - 1)
Range("A" & Zeile + 2 & ":A" & Zeile + 3).Copy Destination:=Range("J" & Zeile - 1)
Rows(CStr(Zeile) & ":" & CStr(Zeile + 3)).Delete Shift:=xlUp
Next
Application.CutCopyMode = False
Application.ScreenUpdating = False
End Sub


Gruß Gerd

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige