Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1720to1724
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

For Schleife wird nicht Stückweise ausgeführt

For Schleife wird nicht Stückweise ausgeführt
14.11.2019 06:47:17
Hendrik
Hi,
ich habe folgendes Problem: Ich habe eine CSV Logdatei, mit DATUM;ZUSTAND(+,-);FEHLER dort möchte ich Fehler, welche in einer Fehlertabelle stehen filtern und derern Fehlerdauer berechnen.
Dazu nutze ich Autofilter mit dem "Fehlerarray". Hier soll jeder Fehler einzeln gesucht werden, in die Berechnung Tabelle kopiert und die Ergebnisse aus der Berechnungstabelle in eine "Zwischendatenbank" kopieren.
Wenn ich einen Fehler als String in den Autofilter schreibe, klappt das auch soweit (Außer das die Fehler in der "Zwischendatenbank" nicht hinter die letzte Zeile angehangen werden....)
Aber sobald ich die For-Schleife nutzen möchte um alle Fehler aus dem Array zu bearbeiten macht er leider nicht. Ich sehe lediglich am Ende, dass im Autofilter in Excel der letzte Fehler aus dem Array eingetragen ist. Aber ich konnte keine Datengenerieren...
Was jemand vielleicht woran ist liegt?

Public Sub Sortieren()
Dim Bereich As Range
Dim intRow As Integer
Dim letztezeile As Integer
Dim letztezeile2 As Integer
Call FehlerArrayanlegen
Call CSV_importieren
letztezeile = Worksheets("FehlerTabelle").UsedRange.SpecialCells(xlCellTypeLastCell).Row
For intRow = 1 To letztezeile
Set Bereich = Worksheets("Alarme").Range("A1:D15000")
Bereich.AutoFilter Field:=3, Criteria1:=FehlerTabelle(intRow, 1)
Worksheets("Alarme").Range("$A2:$A10000").Copy _
Destination:=Worksheets("Berechnung").Range("A2")
Worksheets("Berechnung").Range("F2").Value = FehlerTabelle(intRow, 1)
letztezeile2 = Worksheets("Zwischendatenbank").UsedRange.SpecialCells(xlCellTypeLastCell).Row
Worksheets("Berechnung").Range("D2").Copy
Worksheets("Zwischendatenbank").Cells(intRow, 1).PasteSpecial xlPasteValues
Worksheets("Berechnung").Range("E2").Copy
Worksheets("Zwischendatenbank").Cells(intRow, 2).PasteSpecial xlPasteValues
Worksheets("Berechnung").Range("F2").Copy
Worksheets("Zwischendatenbank").Cells(intRow, 3).PasteSpecial xlPasteValues
Next intRow
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
doppelt, zu
14.11.2019 06:54:11
Klaus
.
AW: For Schleife wird nicht Stückweise ausgeführt
14.11.2019 18:38:36
Piet
Hallo Hendrik Petersen
-logisches denken- ist unglaublich schwer, sogar in einem Forum! Ich gehe als Volksschüler der bis drei zaehlen lernte davon aus, das - KEINER NEBEN DIR SITZT UND AUF DEINEN PC SCHAUT!
Das istr aber eine blosse Vermutung, weil ich weder dich, noch deinen PC sehen kann. Ich kann aber logisch denken! Und nun ganz sachlich zu deinem Code, was mir da an Fehlermöglichkeiten auffiel.
Oben in lettzteZeile gibst du das Worksheet korrekt an, an zwei anderen Stellen aber nicht!
Bereich.AutoFilter Field:=3, Criteria1:=FehlerTabelle(intRow, 1)
Worksheets("Berechnung").Range("F2").Value = FehlerTabelle(intRow, 1)
Dieser Befehl ist überflüssig, weil er nirgendwo verwendet wird. Ich habe ihn gelösht.
etztezeile2 = Worksheets("Zwischendatenbank").UsedRange. ...
Ich konnte den Code ohne Daten leider nicht testen ob er jetzt einwandfrei funktioniert?
Versehentlich im unteren Thread geantwortet, deshalb doppelt.
mfg Ğiet
Public Sub Sortieren()
Dim Bereich As Range
Dim intRow As Integer
Dim letztezeile As Integer
Dim letztezeile2 As Integer
Dim Fehlerwert As Variant
Call FehlerArrayanlegen
Call CSV_importieren
letztezeile = Worksheets("FehlerTabelle").UsedRange.Rows.Count
For intRow = 1 To letztezeile
Fehlerwert = Worksheets("FehlerTabelle").Cells(intRow, 1)
Set Bereich = Worksheets("Alarme").Range("A1:D15000")
Bereich.AutoFilter Field:=3, Criteria1:=Fehlerwert
Worksheets("Alarme").Range("$A2:$A10000").Copy _
Destination:=Worksheets("Berechnung").Range("A2")
Worksheets("Berechnung").Range("F2").Value = Fehlerwert
With Worksheets("Zwischendatenbank")
Worksheets("Berechnung").Range("D2").Copy
.Cells(intRow, 1).PasteSpecial xlPasteValues
Worksheets("Berechnung").Range("E2").Copy
.Cells(intRow, 2).PasteSpecial xlPasteValues
Worksheets("Berechnung").Range("F2").Copy
.Cells(intRow, 3).PasteSpecial xlPasteValues
Application.CutCopyMode = False
End With
Next intRow
End Sub

Anzeige

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige