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

Schleife in Schleife

Schleife in Schleife
07.06.2004 16:59:24
floh
Hallo VBA-Experten
wer kann nachfolge 2 Programmschritte in eine große Schleife zusammenführen?
Programmschritte:
1.Schritt:
-- Schleife soll beginnend bei Zeile 31 einhundert mal ausgeführt werden
-- Dim iRow%
-- For iRow = 31 To Cells(Rows.Count, 1).End(xlUp).Row
-- If Cells(iRow, 14) "" And Cells(iRow, 14).Interior.ColorIndex = 40 Then
-- Range("K16:X16").Copy Cells(iRow, "K")
-- End If
2.Schritt
-- Range("K16:x4000").Copy
-- Range("K16").PasteSpecial Paste:=xlPasteValues
die Schleife soll abwechselnd Schritt 1 und 2 ausführen:
Schleife aus 1. für Zeile 131:230 (=100 mal ausführen)
dann führe Schritt 2. aus
dann Schleife aus Schritt 1. für 231:330 (=100 mal ausführen)
dann führe Schritt 2. aus
...... usw (bis Tabellenende.
Danke Floh

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

Betreff
Datum
Anwender
Anzeige
AW: Schleife in Schleife
07.06.2004 18:50:59
Christoph
Hallo Floh,
meinst du so:

Sub KopierDat()
Dim iRow%, j%
For iRow = 31 To Cells(Rows.Count, 1).End(xlUp).Row
For j = iRow To iRow + 99
If Cells(iRow, 14) <> "" And Cells(iRow, 14).Interior.ColorIndex = 40 Then
Range("K16:X16").Copy Cells(iRow, "K")
End If
Next j
Range("K16:x4000").Copy
Range("K16").PasteSpecial Paste:=xlPasteValues
iRow = j - 1
Next iRow
End Sub

Gruß
Christoph
AW: Schleife in Schleife
07.06.2004 21:39:28
floh
Hallo Christoph,
habe Dein Makro mal ausprobiert und die Fehler aus meiner Fragestellung korregiert.
Problem :
Schritt 2 bis 6 läuft nur einmal
d.h. Zellbereich K16:X16 wird nur in Zeile 31 kopiert anstatt in alle Zeilen.
woran kann das liegen?

Sub KopierDat02()
1. Dim iRow%, j%
2. For iRow = 31 To Cells(Rows.Count, 1).End(xlUp).Row
3.   For j = iRow To iRow + 99
4.      If Cells(iRow, 4) <> "" And Cells(iRow, 4).Interior.ColorIndex = 40 Then
5.         Range("K16:X16").Copy Cells(iRow, "K")
6.      End If
7.   Next j
8.   Range("K31:x4000").Copy
9.   Range("K31").PasteSpecial Paste:=xlPasteValues
10.   iRow = j - 1
11. Next iRow
12. End Sub

Mit freundlichen Grüßen
floh
Anzeige
AW: Schleife in Schleife
Ramses
Hallo
Cells(Rows.Count, 1)
Die 1 steht für Spalte A. Wenn deine zu zählenden Werte in Spalte 14 stehen musst du das entsprechend anpassen.
Gruss Rainer
AW: Schleife in Schleife
07.06.2004 22:27:43
floh
Hallo Ramses
Konnte den Fehler leider immer noch nicht beheben.
Wenn ich Zeile 3, 7, 8, 9, 10 des nachfolgenden Programms deaktiviere läuft die Schleife.
Die zu zählenden Zeilen habe ich auf Spalte D abgändert.
Kann es sein das der Fehler mit copy oder pastespezial zusammenhängt ?
Gibt es eine Alternative mit value?
Gruß Floh

Sub KopierDat02()
1. Dim iRow%, j%
2. For iRow = 31 To Cells(Rows.Count, 4).End(xlUp).Row
3.   For j = iRow To iRow + 99
4.      If Cells(iRow, 4) <> "" And Cells(iRow, 4).Interior.ColorIndex = 40 Then
5.         Range("K16:X16").Copy Cells(iRow, "K")
6.      End If
7.   Next j
8.   Range("K31:x4000").Copy
9.   Range("K31").PasteSpecial Paste:=xlPasteValues
10.   iRow = j - 1
11. Next iRow
12. End Sub

Anzeige
AW: Schleife in Schleife
Ramses
Hallo
es wäre schon gut zu wissen, was denn nicht funktioniert ;-)
Aber das kann nicht funktionieren
Range("K16:X16").Copy Cells(iRow, "K")
Wenn schon, müsste es so heisen
Range("K16:X16").Copy Destination:=Range("K" & iRow)
Gruss Rainer
AW: Schleife in Schleife
07.06.2004 23:28:29
floh
Hallo
Formel funktioniert immer noch nicht
habe deshalb mal eine Beispieldatei
mit beiden Makros fertig gestellt
Bitte um Antwort
Gruß Floh
AW: Schleife in Schleife Datei
08.06.2004 09:35:29
Christoph
hallo Floh,
meinst du so?
Gruß
Christoph

Sub Makro02()
Dim iRow%, j%
For iRow = 31 To Cells(Rows.Count, 4).End(xlUp).Row
For j = iRow To iRow + 99
If Cells(j, 4) <> "" And Cells(j, 4).Interior.ColorIndex = 40 Then
Range("K16:X16").Copy Destination:=Range("K" & j)
End If
Next j
Range("K" & iRow & ":X" & j).Copy
Range("K" & iRow).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
iRow = j - 1
Next iRow
End Sub

Anzeige
AW: Schleife in Schleife Datei
08.06.2004 14:40:20
floh
Hallo Christoph,
genauso habe ich mir das vorgestellt
vielen, vielen Dank
Gruß floh
Danke für die Rückmeldung (o.T.)
08.06.2004 18:58:33
Christoph
AW: Schleife in Schleife
Ramses
Hallo
nur Interessehalber...., worin liegt der Sinn 100 mal
Range("K16:x4000").Copy
auszuführen ?
Gruss Rainer
AW: Schleife in Schleife
07.06.2004 20:50:42
floh
Hallo Ramses,
Schritt 2 soll natürlich nach jeder 100. Zeile nur 1x ausgeführt werden.
sorry Schitt 2 muss heissen:
-- Range("K31:X4000").Copy
-- Range("K31").PasteSpecial Paste:=xlPasteValues)
Sinn:
wenn ich die Formeln aus K16:X16 zu oft durch die in Schritt 1 genannte Schleife
kopiere wird Exel immer langsamer.
Deshalb möchte ich die Formeln wenn Sie 100 mal nach unten kopiert wurden, in Festwerte umwandeln, und dann erst die Berechnung für die nächsten 100 Zeilen fortsetzen. ...usw
Es würde auch reichen nur die gerade durch die Schleife aus Schritt 1 eingesezten Formeln in den 100 Zeilen in Werte umzuwandeln aber irgendwie stelle ich mir das noch schwieriger vor!
Gruß floh
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige