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:29:31
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
AW: For Schleife wird nicht Stückweise ausgeführt
14.11.2019 07:47:08
Hajo_Zi
frage jemand der neben Dir sitzt der sieht die Datei.
Die meisten hier sehen Sie nicht.
Da Sie nicht auf Deinen Rechner schauen.
Vielleicht sollte die Datei verlinkt werden?
Der Name einer hochgeladenen Mappe wird im Beitrag automatisch angezeigt, sodass es bei Verwendung von aussagekräftigen Namen leichter fällt, sie später im Ablageordner wiederzufinden und sie gedanklich einem bestimmten Thema zuzuordnen. Namen wie Muster*, Test*, Mappe*, Beispiel*, Fehler*, Kalender*, UserForm*, Forum* usw. sind so allgemein, dass eine Zuordnung zu einem Thema unmöglich gemacht wird.
Es sollte ein aussagekräftiger Name sein.
Das ist nur meine Meinung zu dem Thema.
Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)

Anzeige
AW: For Schleife wird nicht Stückweise ausgeführt
14.11.2019 18:34:45
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?
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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige