Optimieren
08.07.2005 17:15:09
Ramon
ich bin blutiger Anfänger, dennoch sehr stolz auf meine ersten Programmiererfolge...leider jedoch läuft mein programm (s.u.) tierisch langsam, da ich fuerchte da aufgrund meiner bescheidenen Kenntnisse das ganze wenig optimiert ist und ich ausser dem For..to..next-Befehl noch keine anderen Schleifen anzuweden weiss-was bei 3 ineinander verschachtelten Schleifen vielleicht schon zum Chaos fuehrt?!?...bei dem Progrämmchen handelt es sich um ein Vergleich einer Einlesezeile (über die Spalten 3-9) (im Sheet "Pf_steel") mit den ca 12000 Zeilen einer Tabelle (Sheet("Pf_IC-IF")). Wenn gefunden dann spuckt er am Ende von einem weiteren sheet("Pf_IC-IF") eine bestimmte Zielwerte aus. Liegt die gefundene Zeile am Ende der Tabelle, also im Bereich von Zeile 10000 oder so, dann rechnet sich das Programm nen Wolf und ich flipp aus...wie gesagt, es funktioniert zwar aber viel zu langsam...
Waere nett wenn mir jemand beim vereinfachen der Programmierzeilen weiterhelfen koennte...Vielen Dank schon mal im Vorraus,
Ramon
P.S.:Hier mein Super-Programm:
Sub Zulangsam()
Datensatzgroesse = Cells(12172, 1)
For j = 1 To 5
Sheets("Input").Cells(16, 10) = j
Dim Var(3 To 9) As Variant
For x = 1 To 8
If Sheets("Input").Cells(8, 10) < Sheets("Pf_Steel").Cells(47 + x * 9, 3) Then Exit For
For i = 3 To 9
Var(i) = Sheets("Pf_Steel").Cells(46 + x * 9, i) 'Einlesezeile
Next i
For Suchzeile = 5 To 5 + Datensatzgroesse - 1
gefunden = True
For i = 3 To 9
If Cells(Suchzeile, i) <> Var(i) Then gefunden = False
Next i
If gefunden Then Ausgabezelle = Sheets("Pf_IC-IF").Cells(Suchzeile, 6)
Sheets("Uso").Cells(5, 12 * j - (9 - x)) = Ausgabezelle
If gefunden Then Suchzeile = Suchzeile + Datensatzgroesse
Next Suchzeile
Next x
Next j
End Sub