Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
660to664
660to664
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA - Schleife mehrere Bedingungen, Zeile kopieren

VBA - Schleife mehrere Bedingungen, Zeile kopieren
01.09.2005 11:33:46
christoph
Hallo,
ich habe eine Datenliste (zip-File), die mit einer Schleife nach verschiedenen Bedingungen durchsucht werden soll.
Dabei können die Variablen "Fix_E" (Spalte B) und "TZ_E" (Spalte E)folgende Werte annehmen:
Dim Fix_E(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 21, 28)
Dim TZ_E(0, 1, 2, 3, 4, 5, 6, 7, 14, 21, 28)

Für jeden Fix_E Wert sollen nacheinander die TZ_E Daten durchlaufen werden und für jeden Schritt in Spalte J (Liefererfüllung) geprüft werden, ob der Wert größer oder gleich 98% ist. Ist dies der Fall, soll der jeweils kleinste Wert (also jener, ab dem das Kriterium 98% zum ersten Mal erfüllt ist) in ein anderes Blatt gespeichert werden.
https://www.herber.de/bbs/user/26233.zip
Vielen Dank für jede Idee.
Gruß Christoph

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Schleife mehrere Bedingungen, Zeile kopieren
04.09.2005 12:24:01
Klaus-Dieter
Hallo Christian,
nur zur Sicherheit, daß ich dich richtig verstanden habe. Fix_E 0 vergleichen mit TZ_E 0, 1, 2 ... usw. Dann Fix_E 1 mit TZ_E 0, 1, 2 ...usw. ?
Was soll in das neue Tabellenblatt, nur die gefundenen %Werte, oder die ganze Zeile?
Viele Grüße Klaus-Dieter

Online-Excel
AW: VBA - Schleife mehrere Bedingungen, Zeile kopi
04.09.2005 22:17:49
christoph
Hallo Klaus-Dieter,
für jeden Fix_E-Wert werden nacheinander alle TZ_E durchlaufen. In jedem dieser Schritte (also jedem TZ) soll geprüft werden, ob die 98% Liefererfüllung erreicht wurde, falls ja, soll die ganze Zeile, in der dies zum ersten Mal geschehen ist, in das andere Blatt übertragen werden.
Fix=0
- TZ=0 bei welchem GEZ 98% Liefererfüllung zum ersten Mal erreicht?
- TZ=1 bei welchem GEZ 98% Liefererfüllung zum ersten Mal erreicht?
...
-TZ=28 bei welchem GEZ 98% Liefererfüllung zum ersten Mal erreicht?
Fix=1
-TZ=0 bei welchem GEZ 98% Liefererfüllung zum ersten Mal erreicht?
...
-TZ=28 ...
Fix=..
...
Vielen Dank
Herzliche Grüße
Christoph
Anzeige
AW: VBA - Schleife mehrere Bedingungen, Zeile kopi
05.09.2005 22:52:24
Klaus-Dieter
Hallo Christoph,
anbei ein Lösungsansatz:
Option Explicit

Sub uebertrag()
Dim s As Integer
Dim arr As Variant
Worksheets.Application.ScreenUpdating = False
For s = 2 To Worksheets("Tabelle1").Range("A65536").End(xlUp).Row
If Worksheets("Tabelle1").Cells(s, 10).Value >= 0.98 Then
arr = Worksheets("Tabelle1").Range("A" & s, "O" & s)
Worksheets("Ergebnis").Range("A" & Worksheets("Ergebnis").Range("A65536").End(xlUp).Row + 1, "O" & Worksheets("Ergebnis").Range("A65536").End(xlUp).Row + 1) = arr
Do While Worksheets("Tabelle1").Cells(s, 5) = Worksheets("Tabelle1").Cells(s - 1, 5)
s = s + 1
Loop
End If
Next s
Worksheets("Tabelle1").Range("A2:O2").Copy
Worksheets("Ergebnis").Range("A2", "O" & Worksheets("Ergebnis").Range("A65536").End(xlUp).Row).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Cells(1, 1).Select
Worksheets.Application.ScreenUpdating = True
End Sub

Er läßt sich hinsichtlich der Bearbeitungszeit sicher noch optimieren. Werde mir das morgen daraufhin noch mal ansehen.
Viele Grüße Klaus-Dieter

Online-Excel
Anzeige
AW: VBA - Schleife mehrere Bedingungen, Zeile kopi
05.09.2005 22:52:56
Klaus-Dieter
Hallo Christoph,
anbei ein Lösungsansatz:
Option Explicit

Sub uebertrag()
Dim s As Integer
Dim arr As Variant
Worksheets.Application.ScreenUpdating = False
For s = 2 To Worksheets("Tabelle1").Range("A65536").End(xlUp).Row
If Worksheets("Tabelle1").Cells(s, 10).Value >= 0.98 Then
arr = Worksheets("Tabelle1").Range("A" & s, "O" & s)
Worksheets("Ergebnis").Range("A" & Worksheets("Ergebnis").Range("A65536").End(xlUp).Row + 1, "O" & Worksheets("Ergebnis").Range("A65536").End(xlUp).Row + 1) = arr
Do While Worksheets("Tabelle1").Cells(s, 5) = Worksheets("Tabelle1").Cells(s - 1, 5)
s = s + 1
Loop
End If
Next s
Worksheets("Tabelle1").Range("A2:O2").Copy
Worksheets("Ergebnis").Range("A2", "O" & Worksheets("Ergebnis").Range("A65536").End(xlUp).Row).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Cells(1, 1).Select
Worksheets.Application.ScreenUpdating = True
End Sub

Er läßt sich hinsichtlich der Bearbeitungszeit sicher noch optimieren. Werde mir das morgen daraufhin noch mal ansehen.
Viele Grüße Klaus-Dieter

Online-Excel
Anzeige
AW: VBA - Schleife mehrere Bedingungen, Zeile kopi
06.09.2005 23:55:26
christoph
Hallo Klaus-Dieter,
vielen Dank für Deinen Vorschlag. Könntest Du die Datei, mit der Du gearbeitet hast hochladen, da ich das Makro leider nicht zum Laufen gekriegt habe.
Viele Grüße
Christoph

360 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige