ListBox Einzelene Spalten formatieren
#1
Hallo Zusammen

Ich habe ein Problem, bei dem ich mich nun schon Stunden ab bemühe und mich durchlese wie ein wilder.
Komme aber einfach nicht weiter.

Ich habe eine UserForm mit einer ListBox.

Die ListBox hat folgende Eigenschaften gesetzt:
ColumnCount = 6
ColumnWidths = 0 Pt;141.75 Pt;49 Pt;49.95 Pt;70 Pt;100 Pt

Ich befühlle die Liste über den Code: 

ListBox1.List = Sheets("ListBoxDaten").Range("DatenList").Value

Dies funktioniert auch wunderbar.

Nun möchte ich jedoch in der ListBox, Column 5 und 6 so formatieren, dass diese den Wert im Format CHF #,##0.00 anzeigen.

Kann man der Listbox überhaupt einen solchen Globalen Wert in eine Spalte übergeben oder Sie so vor formatieren?

Ich stelle mir das so vor, wie ich die Spalten in einer Tabelle auf einem Tabellenblatt formatieren kann Undecided

Ich weis nicht ob dies wichtig ist, erwähne es vorsichtshalber trotz dem:
In der Range "DatenList" sind die Spalten E und F mit einer Formel beschrieben, welche mir dann den gewünschten Wert liefern.

Habe gelesen, dass man die Werte auch mit .Text in die Listbox übergeben könnte. Dies funktioniert in meinem Fall jedoch nicht, da er mir dann die Formeln in die ListBox überträgt.


Ich hoffe mein Anliegen ist verständlich.
Besten Dank für eure Hilfe.

Gruss
Demech
Top
#2
Hi

Direkt geht das nicht.

Nur so.
https://www.herber.de/forum/archiv/1144t...stBox.html

oder mit der RowSource-Eigenschaft arbeiten.

PS: Habe noch mal etwas versucht.
ListBox1.List = Application.Index(Range("A1:B2").Value, 0, 0)        'zeigt recht interessantes Verhalten zumindest bei Euro

Gruß Elex
[-] Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:
  • Demech
Top
#3
Moin!
Ergänzend sei noch erwähnt, dass sowohl das "C" als auch "H" im Format-String vorbelegt sind.
Daher müssen diese Buchstaben des "CHF" mittels Backslash maskiert werden, sonst kommt nur Müll heraus:
.AddItem Format(Tabelle1.Range("F1").Value, "\C\HF #,##0.00")

Andere Möglichkeit:
Übergebe die .Text-Eigenschaft, wenn der Zellinhalt bereits wie gewünscht formatiert ist:
.AddItem Tabelle1.Range("F1").Text

… und noch ein Gedicht:
Wenn Du ohnehin im Schweizer Gebietsschema unterwegs bist, kann man eine unformatierte Zahl auch so umwandeln:
.AddItem Format(Tabelle1.Range("F1").Value, "Currency")

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)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Demech
Top
#4
Hallo Zusammen

Besten Dank für die Hinweise und Tipps von euch.

Bin noch am Proben:

Zu: ListBox1.List = Application.Index(Range("ListDaten").Value, 0, 0) 
Funktioniert perfekt. Danke



Zu: ListBox1.AddItem Format(Tabelle4.Range("ListDaten").Value, "Currency")
Hier kriege ich eine Typenunverträglichkeit. Liegt jedoch wohl am Rest des Codes welchen ich verwende.

Verwende ich die RowSource schmiert mir Excel immer wieder ab.

Danke euch auf jeden Fall. Habe jetzt ein paar Dinge zu büffeln.
Werde die Tipps ausprobieren um zu lernen.

Danke euch
Top


Gehe zu:


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