31.10.2022, 09:37 (Dieser Beitrag wurde zuletzt bearbeitet: 31.10.2022, 09:38 von dertommy.)
Hallo!
Ich lasse mir in einer Msgbox Werte untereinander anzeigen. Nachdem diese Werte unterschiedlich lang sind, will ich sie nicht wie standardmäßig linksbündig angezeigt bekommen, sondern rechtsbündig. Ist so etwas überhaupt möglich? Anbei mein VBA Code:
Code:
Sub JahresstatistikRanking()
With ThisWorkbook.Worksheets("Jahresstatistik")
Dim i, WWert As Double, TText As String, Zeile As Integer, Sp As Integer Dim Z1 As Integer, LR As Integer, RNG As Range
Z1 = 3 'Erste Datenzeile Sp = 7 'Werte in G
LR = Cells(Rows.Count, Sp).End(xlUp).Row 'letzte Zeile der Spalte Set RNG = Cells(Z1, Sp).Resize(LR + Z1 + 1, 1)
For i = 1 To 8 WWert = WorksheetFunction.Large(RNG, i) Zeile = WorksheetFunction.Match(WWert, RNG, 0) + Z1 - 1 TText = TText & Format(Cells(Zeile, 1), "YYYY: ") & " € " & Format(WWert, "#,##0.00") & vbLf Next MsgBox "Top 8 (berechnet bis Jahresende)" & vbLf & vbLf & TText & String(2, vbNewLine) & _ "Top 8 (berechnet bis " & Date & ")"
31.10.2022, 10:06 (Dieser Beitrag wurde zuletzt bearbeitet: 31.10.2022, 10:08 von Ralf A.)
Hi,
eine rechtsbündige Ausgabe ist in der Msgbox nicht vorgesehen. Da müsstest Du Dir schon selbst eine basteln, mit einer Textbox z. Bsp. Ansonsten könntest Du aber mit Tabulatoren arbeiten. Bsp. für die Schleife, indem Du am Anfang oder Ende der Zuweisung von TText noch einoder mehrere & vbtab ergänzt. (ungetestet) Dann sähe es zumindest wie eine Auflistung aus.
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben. Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.
31.10.2022, 10:09 (Dieser Beitrag wurde zuletzt bearbeitet: 31.10.2022, 10:10 von dertommy.)
(31.10.2022, 10:06)Ralf A schrieb: Hi,
eine rechtsbündige Ausgabe ist in der Msgbox nicht vorgesehen. Da müsstest Du Dir schon selbst eine basteln, mit einer Textbox z. Bsp. Ansonsten könntest Du aber mit Tabulatoren arbeiten. Bsp. für die Schleife, indem Du am Anfang oder Ende der Zuweisung von TText noch einoder mehrere & vbtab ergänzt. (ungetestet) Dann sähe es zumindest wie eine Auflistung aus.
Hallo!
Danke für die rasche Antwort. Ich habe es soeben mit "vbtab " probiert, bringt mir aber nichts, er rückt einfach alle um einen Tab Sprung weiter nach rechts. Die Lösung mit einer Textblox klingt wieder sehr aufwendig.
(31.10.2022, 10:09)dertommy schrieb: Die Lösung mit einer Textblox klingt wieder sehr aufwendig.
...tja... dann musst Du mit dem leben, was da ist...
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben. Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.
Sub JahresstatistikRanking() Dim i As Long, WWert As Double, TText As String, Zeile As Integer, Sp As Integer Dim Z1 As Integer, LR As Integer, RNG As Range Dim strZL As String, strZR As String
With ThisWorkbook.Worksheets("Jahresstatistik")
Z1 = 3 'Erste Datenzeile Sp = 7 'Werte in G
LR = .Cells(Rows.Count, Sp).End(xlUp).Row 'letzte Zeile der Spalte Set RNG = .Cells(Z1, Sp).Resize(LR + Z1 + 1, 1)
Sub JahresstatistikRanking() Dim i As Long, WWert As Double, TText As String, Zeile As Integer, Sp As Integer Dim Z1 As Integer, LR As Integer, RNG As Range Dim strZL As String, strZR As String
With ThisWorkbook.Worksheets("Jahresstatistik")
Z1 = 3 'Erste Datenzeile Sp = 7 'Werte in G
LR = .Cells(Rows.Count, Sp).End(xlUp).Row 'letzte Zeile der Spalte Set RNG = .Cells(Z1, Sp).Resize(LR + Z1 + 1, 1)
Danke für die rasche Hilfe. Im Prinzip ist es genau das, was ich gewollt habe. Nur hätte ich gerne nicht zwischen dem Datum und den Werten ein "_" ausgefüllt, weil es nicht gut aussieht. Wie es bei mir genau aussieht, habe ich dir als Dateianhang mitgeschickt. Wenn ich statt "_" ein " " mache, ist es wieder nicht ganz genau unter einander, aber besser als vorher. Ich hoffe, dass du mir nochmals helfen kannst.