Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1116to1120
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 bei bestimmter Zeile beenden

Schleife bei bestimmter Zeile beenden
Sven
Hallo zusammen,
sitze gerade ziemlich auf der Leitung und habe auch über Neztrecherchen keine Lösung gefunden. Hier mein Problem:
Nachfolgendes (Übungs!)-Makro kopiert Zellen aus dem aktiven Worksheet in alle nachfolgenden Worksheets des Workbooks. Zielzelle (Anfang) des Kopiervorgangs ist immer die unterste freie Zeile der Spalte A. Wiederholt wird der Vorgang so oft, wie in Zelle E5 eingegeben.
Jezt möchte ich die zusätzliche Bedingung formulieren, dass das dieser Vorgang immer bei Zeile 50 endet. Also grundsätzlich so oft in E5 angegeben, AUßER Zeile 5 wird erreicht, dann abbrechen.
hier mal mein Makro:
Sub Markierung_x_fach_kopieren()
Dim Loletzte As Long
a = Cells(5, 5).Value
For I = a To 1 Step -1
For Each Worksheet In ActiveWorkbook.Worksheets
Select Case Worksheet.Name
Case "Mast"
Case Else
If IsEmpty(Worksheet.Cells(1, 1)) Then
With Worksheet
Loletzte = IIf(IsEmpty(.Range("A65536")), _
.Range("A65536").End(xlUp).Row + 1, 65536)
Selection.Copy Destination:=.Cells(Loletzte, 1)
End With
End If
End Select
Next Worksheet
Next I
End Sub
Wie gesagt, ein Übungsprojekt ...
Gruß, Sven

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
If mit Exit For......
12.11.2009 11:36:02
robert
hi,
ich denke so:
I abfragen, wenn bedingung erfüllt,
Then Exit For
gruß
robert
AW: If mit Exit For......
12.11.2009 11:53:57
Sven
Hallo robert!
Hm, komme ich leider nicht mit ...
I lege ich doch selbst in Zelle E5 fest. Ich möchte ja, dass die Schleife auch schon for dem I-ten mal abgebrochn wird, falls inzwischen Zeile 5 (besser "X") erreicht wird.
Vielleicht nochmal in besseren Worten: Das Makro soll den Kopiervorgang I - mal wiederholen, aber NIE über die Zeile X hinausschreiben.
Oder habe ich Dich falsch verstanden?
Gruß, Sven
AW: If mit Exit For......
12.11.2009 12:06:28
robert
hi,
If ....befehl eingefügt
gruß
robert
Sub Markierung_x_fach_kopieren()
Dim Loletzte As Long
a = Cells(5, 5).Value
For I = a To 1 Step -1
If I = 5 Then Exit For ' statt 5 deine gewünschte Zeile
For Each Worksheet In ActiveWorkbook.Worksheets
Select Case Worksheet.Name
Case "Mast"
Case Else
If IsEmpty(Worksheet.Cells(1, 1)) Then
With Worksheet
Loletzte = IIf(IsEmpty(.Range("A65536")), _
.Range("A65536").End(xlUp).Row + 1, 65536)
Selection.Copy Destination:=.Cells(Loletzte, 1)
End With
End If
End Select
Next Worksheet
Next I
End Sub

Anzeige
AW: If mit Exit For......
12.11.2009 13:02:23
Sven
Hir Robert,
sry, das war nicht das was ich meinte. Bin aber inzwischen selbst darauf gekommen... Ich frage den wert für Loletzte ab = Zeilenkoordinate - Falls diese größer b (mein Wert in C6), wird die Schleife unterbrochen (GoTo TooMuch). Effekt: Alle Blätter werden nur noch bis zu der von mir vorher festgelegten Zeile befüllt!
Sieht dann so aus:
Sub Markierung_x_fach_kopieren_2()
Dim Loletzte As Long
a = Cells(5, 5).Value
b = Cells(6, 5).Value
For I = a To 1 Step -1
For Each Worksheet In ActiveWorkbook.Worksheets
Select Case Worksheet.Name
Case "Mast"
Case Else
If IsEmpty(Worksheet.Cells(1, 1)) Then
With Worksheet
Loletzte = IIf(IsEmpty(.Range("A65536")), _
.Range("A65536").End(xlUp).Row + 1, 65536)
If Loletzte > b Then GoTo TooMuch
Selection.Copy Destination:=.Cells(Loletzte, 1)
TooMuch:
End With
End If
End Select
Next Worksheet
Next I
End Sub
Vielen Dank fürs mitgrübeln ;-))
Gruß, Sven
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige