Schleife läuft endlos.....?
22.09.2016 21:12:40
EasyD
ich habe mal wieder ein Brett vorm Kopf.
Ich durchlaufe das Blatt "Import" mit einer Schleife und Suche nach Übereinstimmungen in Spalte 9 mit dem Blatt "Eingabe" Spalte 8, dort im Bereich Zeile ab Zeile 6.
Wenn Übereinstimmung, dann in Spalte 18 eine "1" schreiben ---- klappt
wenn keine Übereinstimmung, dann die gefundene zeile (LoJ) aus Import kopieren und in die nächste freie Zeile im Blatt "Fehlerprotokoll" schreiben ---- da hängt's
Er kopiert mir nicht nur diese Zeile, sonder er kopiert ALLE zeilen, und das auch noch immer wieder. musste den Code abbrechen als ich germerkt habe, dass er nicht mehr mit kopieren und einfügen aufhört. Ich sehe das Problem nicht. Eigentlich dachte ich, der Vorgang wird nur ausgeführt im "Else-Fall"....?
und da kommt der vba-dummy wieder durch:
Ich bin mir auch nicht sicher, was ..."Offset(1, 0)."... eigentlich bewirkt,
Mein Code - wer kann helfen?
Sub Prfg()
Sheets("Import").Activate
Dim LoI As Long
Dim LoJ As Long
Dim LoLetzte1 As Long
Dim LoLetzte2 As Long
LoLetzte1 = 65536
With Worksheets("Eingabe")
If .Range("K65536") = "" Then LoLetzte1 = .Range("K65536").End(xlUp).Row
End With
LoLetzte2 = 65536
With Worksheets("Import")
If .Range("I65536") = "" Then LoLetzte2 = .Range("I65536").End(xlUp).Row
End With
For LoI = 6 To LoLetzte1
For LoJ = 2 To LoLetzte2
If Worksheets("Import").Cells(LoJ, 9) = Worksheets("Eingabe").Cells(LoI, 10) _
Or Worksheets("Import").Cells(LoJ, 8).Value = 378000 Then
'1 schreiben wenn ok
Worksheets("Import").Cells(LoJ, 18).Value = 1
Else
'Fehlerzeile kopieren nach Fehlerprotokoll
'xxxxxxxxxxxxxxxxxxxxxxxxx hier hängt die Kiste xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Rows(LoJ).Copy
Sheets("Fehlerprotokoll").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0). _
PasteSpecial xlPasteValues
'xxxxxxxxxxxxxxxxxxxxxxxxx hier hängt die Kiste xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
End If
Next LoJ
Next LoI
'Summe in Zelle R1 Blatt Import schreiben und Fehlermeldung ausgeben wenn nicht 0
Sheets("Import").Range("R1") = Application.WorksheetFunction.Sum(Range("R2:R10000"))
Sheets("Import").Range("S1") = Application.WorksheetFunction.Count(Range("K2:K10000"))
'die erstellen 1sen werden summiert und verglichen:
If Sheets("Import").Range("R1").Value = Sheets("Import").Range("S1").Value Then
Else
'wenn Fehler gefunden (R1 ist ungleich S1), dann Fehlermeldung
MsgBox "....."
Sheets("Eingabe").Activate
End If
End Sub
Vielen Dank für eure Hilfe vorab!