Ich muss das Thema leider noch einmal aufgreifen, weil ich vor einem Problem stehe. Euer Code hat bis jetzt super funktioniert. Nun habe ich den Code in eine andere Tabelle mit anderen Werten eingefügt und und ist es so, dass der 8. Rang nicht angezeigt wird und ich weiß nicht warum. Vielleicht kann mich ja irgend jemand aufklären, warum nur 7 Ränge angezeigt werden und nicht 8. Es liegt sicher an den Daten (Zahlen), aber ich finde keine Prüfung im VBA Code, wo ich darauf schließen könnte, warum der 8. Rang in Höhe von € 5,49 nicht angezeigt wird. Ich habe die Datei mit angehängt. Einfach auf "Ranking" klicken und man sieht nur 7 Ränge, obwohl ich eigentlich 8 Ränge erwartet hätte. Ich danke euch jetzt schon.
16.03.2023, 09:38 (Dieser Beitrag wurde zuletzt bearbeitet: 16.03.2023, 09:39 von dertommy.)
Hallo!
Danke, dass sich so schnell wer den Code angesehen hat. Das kann ich aber leider nicht auskommentieren, da sonst Werte mit 0 angezeigt werden, was ich nicht will. Das ist schon bewusst so. In dieser Tabelle werden zwar keine 0 Werte angezeigt, aber ich habe eine andere, da werden 0 Werte angezeigt.
Ich möchte dieses Thema nochmals aufgreifen, weil ich noch gerne eine Optimierung hätte. Ich möchte, dass der Wert " aktuellesJahr" nur angezeigt werden, wenn beim aktuellen Jahr der Rang größer als 8 ist, sprich ab 9. Sonst soll "aktuellesJahr" gar nicht angezeigt werden. Des weiteren möchte ich dann den Rang, das aktuelle Jahr, die Summe und die Anzahl wieder in der Msg stehen haben, wenn die oben genannten Kriterien erfüllt sind. Das Jahr steht in der Spalte 1, der Rang in 8, die Summe in 12 und die Anzahl in 13.
Code:
Sub JahresstatistikRanking()
With ThisWorkbook.Worksheets("Jahresstatistik")
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
Z1 = 3 'Erste Datenzeile Sp = 12 'Werte in L Sp1 = 15 'Werte in O
LR = Cells(Rows.Count, Sp).End(xlUp).Row 'letzte Zeile der Spalte LR1 = Cells(Rows.Count, Sp1).End(xlUp).Row 'letzte Zeile der Spalte
Moin! Ich bin dann mal #38: Auswertungen per MsgBox machen ähnlichen Sinn wie Sattwerden mit einer Speisekarte! Verrätst Du uns, was der tiefere Sinn dieses mittlerweile 9 Monate alten Threads ist? Ich jedenfalls würde so etwas immer mit Formeln oder Pivot abbilden. Damit kann man zumindest weiter arbeiten; eine MsgBox kann man nur lesen.
21 Variablen (die auch noch falsch deklariert sind)! Sonst geht es Dir gut?
Gruß Ralf
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)