Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1156to1160
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zahlen in linksbündiger Listbox rechtsbündig

Zahlen in linksbündiger Listbox rechtsbündig
Daniel
Hallo
ich habe eine mehrspaltige Listbox, in der ich in Spalte 1 Texte und in Spalte 2 und 3 Zahlen darstellen will. (Beispielsweise: Parteiname, Stimmenanzahl, Anteil in Prozent)
die Texte sollen natürlich linksbündig stehen, die Zahlen natürlich rechtsbündig.
ist sowas über das Zahlenformat innerhalb einer Textbox möglich?
im Prinzip schon, wenn man führende Nullen verwendet, aber das würde ja die Lesbarkeit verschlechtern, dh ich brauche statt führender Nullen führende Leerzeichen.
Wie sieht hierzu der Definitionstring in der FORMAT-Funktion aus?
damit folgender Code:
With ListBoxWahlergebnis:
.AddItem "XYZ"
.List(0,1)=Format(100000, "xxxxxx")
.List(0,2)=Format(100000/200000, "xxx%")
.AddItem "ABCDE"
.List(1,1)=Format(2000, "xxxxxx")
.List(1,2)=Format(2000/200000, "xxx%")
End with

folgendes Ergebnis in der Listbox hat:
XYZ     100000     50%
ABCDE     2000      1%
Gruß, Daniel
AW: Zahlen in linksbündiger Listbox rechtsbündig
23.05.2010 15:16:40
fcs
Hallo Daniel,
möglicher Weise bekommt man es auch mit einem benutzerdefinierten Format gebacken.
Ich schlage aber folgende benutzerdefinierte Funktion vor.
Außerdem muss du für die Listbox einen Font mit fester Zeichenbreite wählen -CourierNew, FixedSys oder anderen.
Gruß
Franz
Private Sub UserForm_Initialize()
With ListBoxWahlergebnis:
.AddItem "XYZ"
.List(0, 1) = Fuellzeichen(maxLaenge:=7, sText:=Format(100000, "#,##0"))
.List(0, 2) = Fuellzeichen(maxLaenge:=4, sText:=Format(100000 / 200000, "0%"))
.AddItem "ABCDE"
.List(1, 1) = Fuellzeichen(maxLaenge:=7, sText:=Format(2000, "#,##0"))
.List(1, 2) = Fuellzeichen(maxLaenge:=4, sText:=Format(2000 / 200000, "0%"))
End With
End Sub
Function Fuellzeichen(maxLaenge As Long, sText As String, _
Optional sFuell As String = " ", Optional bKuerzen As Boolean) As String
'Füllt den Text sText bis zur maxLaenge Anzahl Zeichen mit führenden Füllzeichen auf
'sFuell = Füllzeichen - Vorgabe ist = Leerzeichen
'bKuerzen - Wenn True, dann wird der Text ggf. auf maxLaenge gekürzt
Fuellzeichen = sText
If Len(sText) > maxLaenge Then
If bKuerzen = True Then
Fuellzeichen = Left(sText, maxLaenge)
End If
ElseIf Len(sText) 

Anzeige
AW: Zahlen in linksbündiger Listbox rechtsbündig
23.05.2010 15:44:01
Daniel
Hi Franz
danke für den Hinweis.
das das über Textfunktionen mit Leerzeichen vorne dranschreiben und dann von rechts ne feste Anzahl Zeichen auschneiden funktioniert, ist mir schon klar.
die Frage ist, ob man sich diesen Aufwand sparen kann weil die FORMAT-Funktion bei entsprechender Vorgabe im Formatstring gleich das passende Ergebnis liefert.
Gruß, Daniel
AW: Zahlen in linksbündiger Listbox rechtsbündig
24.05.2010 08:14:37
fcs
Hallo Daniel,
wie du durch Probieren sicherlich schon festgetsellt hast, kann die Format-Funktion unter VBA nicht alle Formate umsetzen, die als Zellenformat eingestellt werden können.
Die Vba-Funktion "Format" entspricht in ihren Möglichkeiten etwa der Tabellenfunktion "TEXT".
Gruß
Franz
Anzeige
AW: Zahlen in linksbündiger Listbox rechtsbündig
24.05.2010 12:57:08
Daniel
Hi
heißt das, daß es nicht möglich ist, statt führender 0 führende " " anzugeben die an die Stellenzahl angepasst werden und man sich über die Textfunktionen behelfen muss?
Gruß, Daniel
AW: Text in rechtsbündiger Listbox linksbündig
23.05.2010 15:35:48
Gerd
Hi
...zumindest einigermaßen.
Sub a()
With ListBox1
.AddItem "XYZ"
.List(0, 0) = .List(0, 0) & String(100 - Len(.List(0, 0)), " ")
.List(0, 1) = Format(100000, "#0")
.List(0, 2) = Format(100000 / 200000, "#0%")
.AddItem "ABCDE"
.List(1, 0) = .List(1, 0) & String(100 - Len(.List(1, 0)), " ")
.List(1, 1) = Format(2000, "#0")
.List(1, 2) = Format(2000 / 200000, "#0%")
End With
End Sub
Gruß Gerd
Anzeige
AW: Oder wie das Bonbon heißt,
25.05.2010 00:27:58
Gerd
Hi,
nimm 2 (Listboxen).
Gruß Gerd
AW: Oder wie das Bonbon heißt,
26.05.2010 01:07:22
Daniel
HI,
ja danke.
so gehts natürlich auch.
die Workarounds sind mir schon klar.
ich wollte nur wissen, obs auch einfach und elegant über die Format-Funktion geht.
Gruß, Daniel
Lösung gefunden
28.05.2010 00:46:47
Daniel
Hi
mittlerweile habe ich die Lösung gefunden.
als Formel in Exceltabellen gehts über das Fragezeichen, daß stellenabhängig in Leerzellen umgewandelt wird.
=Text(1;"?0")
will man das ganze nun in VBA verwenden, stellt man fest, daß die FORMAT-Funktion das Fragezeichen nicht als Formatierungsoption beherscht.
Wenn man allerdings statt FORMAT() dann WORKSHEETFUNCTION.TEXT() verwendet, gehts wieder.
Gruß, Daniel
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge