Ich bin gerne bereit, dies zu probieren. Aber bist du dir sicher, dass dein Code das wieder spiegelt, was ich will? Denn wie schon mehrmals erwähnt, wird in deinem Screenshot das Jahr 2023 im unteren Block gar nicht angezeigt, was aber gewünscht ist und im oberen sollte es mit einer Leerzeile als 10. Rang angezeigt werden.
schau einfach mal im Direktfenster in die Arrays rein. Da sind alle Treffer (Ranking) brav sortiert drin. Also die Basis ist dazu vorhanden.
Du musst lediglich nach Schleifenabbruch nach 8. eine Suchschleife bauen, welche das aktuelle Jahr im Array sucht und bei Treffer die Arrayzelle(n) auslesen und in die Stringvariable übergeben.
13.10.2023, 07:08 (Dieser Beitrag wurde zuletzt bearbeitet: 13.10.2023, 07:22 von dertommy.)
Hallo!
Wenn ich F8 drücke springt er 100 x zwischen folgender Codestelle herum um ich sehe gar nichts:
Code:
If arrList1(i, 3) > 0 Then k = k + 1 ReDim Preserve arrTmp1(1 To 4, 1 To k) ' Filtern des Array auf vorhandenen Betrag arrTmp1(1, k) = Year(arrList1(i, 1)) arrTmp1(2, k) = arrList1(i, 2) arrTmp1(3, k) = arrList1(i, 3) arrTmp1(4, k) = arrList1(i, 4) End If If arrList2(i, 3) > 0 Then ' Filtern des Array auf vorhandenen Betrag j = j + 1 ReDim Preserve arrTmp2(1 To 4, 1 To j) arrTmp2(1, j) = Year(arrList2(i, 1)) arrTmp2(2, j) = arrList2(i, 2) arrTmp2(3, j) = arrList2(i, 3) arrTmp2(4, j) = arrList2(i, 4) End If Next i
Im Direktfenster wird nichts angezeigt. Ich habe nun noch einmal probiert, aber jetzt werden die Ränge 1 - 7 doppelt angezeigt und der 8. einmal (siehe Dateianhang).
13.10.2023, 08:50 (Dieser Beitrag wurde zuletzt bearbeitet: 13.10.2023, 08:57 von dertommy.)
Auch dort mach er das gleiche, er springt immer an der gleichen Position hin und her und ich sehe gar nichts. Sorry, aber das bringt mich überhaupt nicht weiter. Bei mir öffnet sich keine MsgBox oder irgendetwas ähnliches, wo ich etwas ableiten kann.
Ralf hat recht. Es ist natürlich das Lokalfenster. Damit du siehst wie du an die Informationen kommst, habe ich mal dein Stopmarke in Zeile 53 gesetzt und die Prozedur bis dahin durchlaufen lassen. Im Bild siehst du genau das, was ich dir dazu bereits geschrieben hatte.
Lokalfenster und Direktfenster sind Hilfsmittel im VB Editor, die dem Programmierer während der Laufzeit des Programms Informationen über den derzeitigen Stand von Objekten und Variablen geben. So kannst du beispielsweise überwachen, welches Element eines Arrays zu welchem Schleifendurchlauf welchen Wert hat.
Das hilft mir trotzdem nicht weiter, weil ich nicht glaube, dass du meine Anforderung verstanden hast (wie man auch in deinem Screenshot vom Post #30 sieht). Warum gehst du eigentlich nie darauf ein? Ich habe das schon mehrmals erwähnt. Ich glaube, dass das hier zu nichts führt. Danke für eure Hilfe.
Zitat:Wenn ich F8 drücke springt er 100 x zwischen folgender Codestelle herum um ich sehe gar nichts:
F8 ist aber Einzelschritt, da müsste man 100x drücken damit da was 100x springt ...
Zur letzten geposteten Datei:
PHP-Code:
Dim i, i1, WWert, WWert1 As Double, TText, TText1 As String, Zeile, Zeile1 As Integer, Sp, Sp1, Rang, Rang1 As Integer Dim Z1 As Integer, LR, LR1 As Integer, rng, rng1 As Range, Jahr, Jahr1 As Integer, TMP, TMP1 As String
nur mal als Hinweis - korrekt dimensioniert werden die Variablen nur, wenn Du zu jeder den Typ schreibst. Gibt zwar eine Ausnahme, aber lassen wir die mal beiseite. Wo nix steht, ist der Typ Variant, z.B. i, i1, WWert, TText, Zeile ...
Wenn das aktuelle Jahr, wenn es nicht enthalten ist - könnte man mit INSTR prüfen -, immer ? als Rang 10 angezeigt werden soll, dann könntest Du die 10. einfach so davor schreiben. Dann schaust Du, in welcher Zeile es steht und holst Dir den entsprechenden Wert.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)