Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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

Anzeige

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
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige