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
1764to1768
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

Schleife

Schleife
17.06.2020 14:15:51
Eberhard
Guten Tag
Ich möchte eine Schleife erstellen die unterstehender Code von Zeile A3 bis A26 ausführt. Jedoch weis ich nicht genau wie!
Kann mir da jemand behilflich sein? Gruss Daniel
Tabelle1.Select
Range("A3,C3,E3:F3").Copy
Tabelle5.Range("A1").PasteSpecial Paste:=xlPasteValues, Transpose:=False
Application.CutCopyMode = True

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife
17.06.2020 14:21:49
Klaus
Hallo Daniel,
aufgrund deines Levels meine ich, du willst erstmal lernen wie eine Schleife funktioniert. Im Prinzip so:
for x = 1 to 100
[...]
next x

zwischen for und next steht code, der 100 mal ausgeführt wird. Im Code kannst du "x" verwenden, um die aktuelle Ausführungszahl zu haben. Verwende am besten sinnige Variablennamen, ich habe mir angewöhnt für Zeilen mindestens z und für Spalten ein s zu verwenden.
Die Antwort auf deine Frage wäre dann, so sähe das als Schleife aus:
Sub schleife()
Dim z As Long
With Tabelle1
For z = 3 To 26
.Range("A" & z & ",C" & z & ",E" & z & ":F" & z & "").Copy
Tabelle5.Range("A" & z-2).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Next z
End With
End Sub

Falls aber deine Frage ist, wie du die Bereiche A,C,E:F schnell und optimal von 3 bis 26 kopierst - dann ist das eine anderer Lösung :-)
LG,
Klaus M.
Anzeige
AW: Schleife
17.06.2020 14:38:20
Eberhard
Hallo Klaus,
Hey das ist mega nett von Dir. Mein Ansatz wäre nicht schlecht gewesen. Aber ich wusste nicht wie ich dies mit den Zellen anstelle! Danke für die Erklärung. Ist nicht jeder so freundlich im Forum!
Es geht schon darum die Bereiche A,C,E:F in die Tabelle5 zu kopieren. Aber mir ist da keine andere Lösung als dies mit der Schleife eingefallen!?!. Gruss Daniel
AW: Ohne Schleife
17.06.2020 15:07:31
Gerd
Moin Daniel
Sub Unit()
Tabelle1.Range("A3:A26,C3:C26,E3:F26").Copy
Tabelle5.Range("A1").PasteSpecial xlPasteValues
Application.CutCopyMode = False
End Sub

Gruß Gerd
Anzeige
AW: Ohne Schleife
17.06.2020 15:16:09
Eberhard
Hallo Gerd L
Danke für diese Version. Das geht natürlich viel schneller! :-) Gruss Daniel
AW: Ohne Schleife
18.06.2020 09:00:20
Klaus
Hallo Daniel und Gerd,
bei läppischen 23 Durchläufen dürften die beiden Versionen auf einem modernen Computer eigentlich auf ein paar Mikrosekunden gleich schnell sein. Gerd's Version ist natürlich trotzdem viel besser - gerade wenn es um große Bereiche von ein paar tausend Zellen geht auch ungleich schneller.
Der Vorteil der Schleife ist, du könntest bei jedem Durchlauf noch eine Prüfung einbauen. Zum Beispiel, kopiere nur nach Tabelle5 wenn in A ein "ja" steht:
Sub schleife()
Dim z As Long
dim z2 as long
z2 = 1
With Tabelle1
For z = 3 To 26
if .Range("A" & z).value = "ja" then
.Range("A" & z & ",C" & z & ",E" & z & ":F" & z).Copy
Tabelle5.Range("A" & z2).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
z2 = z2 + 1
end if
Next z
End With
End Sub
so bekämst du eine gefilterte zweite Liste.
Auch DAS geht deutlich schneller ohne Schleife - aber meine Erfahrung ist, lern erstmal MIT Schleifen zu arbeiten bis du ein durchschnittliches VBA Level erreichst, die sind einfach relativ intuitiv verständlich. Dann kannst du auch besser staunen, was Profis alles OHNE Schleifen in sauschnell zaubern :-)
LG,
Klaus M.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige