Sortierung in MsgBox mit gleichen Werten
#41
Hallo!

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.
Excel Version 2016
Antworten Top
#42
Hallo Thomas,

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.

Gruß Uwe
Antworten Top
#43
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).


Angehängte Dateien
.xls   Mppe1.xls (Größe: 1,22 MB / Downloads: 2)
Excel Version 2016
Antworten Top
#44
Gemeint ist das Lokalfenster.
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#45
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.
Excel Version 2016
Antworten Top
#46
Hallo Thomas,

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.
   

Gruß Uwe
Antworten Top
#47
Moin,

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.

Viele Grüße derHöpp
Antworten Top
#48
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.
Excel Version 2016
Antworten Top
#49
Hallöchen,

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 ii1WWertWWert1 As DoubleTTextTText1 As StringZeileZeile1 As IntegerSpSp1RangRang1 As Integer
    Dim Z1 
As IntegerLRLR1 As Integerrngrng1 As RangeJahrJahr1 As IntegerTMPTMP1 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)
Antworten Top
#50
Hallo!

Der Rang ist nicht immer 10, das war nur ein Beispiel. Er wird aus der Formel berechnet und soll von dieser ausgelesen werden.
Excel Version 2016
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste