Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1008to1012
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
08.09.2008 15:41:51
Christian
Hallo Leute,
ich hab da eine Sache mit der ich leider nicht so richtig weiterkomme.
Ich lande bei dieser Sprungmarke leider immer wieder in einer Schleife.
Kann mir einer sagen, wie ich es anstelle, dass VBA lediglich die Zeilen
10:5000 nach den vier Kriterien durchsucht ?
Bogentresor_Abgang:
With Worksheets("Bogentresor")
Dim A As Long
Dim strWert As String, strSuchWert As String
strSuchWert = TextBox6 & TextBox13 & ComboBox1 & TextBox7
Application.ScreenUpdating = False
For A = Range("F:J").SpecialCells(xlCellTypeLastCell).Row To 10 Step -1
strWert = Cells(A, "F") & Cells(A, "G") & Cells(A, "H") & Cells(A, "J")
If strWert = strSuchWert Then
With Sheets("Archiv")
Range(Cells(A, "F"), Cells(A, "J")).Copy .Cells(Rows.Count, 5).End(xlUp).Offset(1, 0)
Rows(Cells(A, "F").Row).Delete
End With
End If
Application.ScreenUpdating = True
Next A
GoTo Ende:
Gruß Christian

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife
08.09.2008 16:57:31
Erich
Hallo Christian,
ist das Problem, dass die Tabelle weit über Zeile 5000 hinausgeht?
Dann reicht es, die Schleife von Min(5000, letzteZeile) bis 10 laufen zu lassen.
"With Worksheets("Bogentresor") steht etwas unmotiviert in der Landschaft,
verträgt sich nicht mit dem später folgenden "With Sheets("Archiv")".
With Sheets("Archiv") würde ich außerhalb der Schleife platzieren - einmalig.
Statt A hab ich mal zz als Zeilen-Laufvariable genommen - liest sich schon etwas leichter
(und ist etwas kürzer als lngZ - was besser wäre...)
Rows(Cells(zz, "F").Row).Delete geht doch auch kürzer mit Rows(zz).Delete
Probier mal

Dim zz As Long, strWert As String, strSuchWert As String
Worksheets("Bogentresor").Select
strSuchWert = TextBox6 & TextBox13 & ComboBox1 & TextBox7
Application.ScreenUpdating = False
With Sheets("Archiv")
For zz = Application.Min(5000, _
Range("F:J").SpecialCells(xlCellTypeLastCell).Row) To 10 Step -1
strWert = Cells(zz, "F") & Cells(zz, "G") & Cells(zz, "H") & Cells(zz, "J")
If strWert = strSuchWert Then
Range(Cells(zz, "F"), Cells(zz, "J")).Copy Destination:= _
.Cells(Rows.Count, 5).End(xlUp).Offset(1, 0)
'           Rows(Cells(zz, "F").Row).Delete ' ?
Rows(zz).Delete
End If
Next zz
End With
Application.ScreenUpdating = True

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige