Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zahlen- und Datumsformat in ListBox

Zahlen- und Datumsformat in ListBox
22.01.2007 12:45:26
Thomas
Hallo Excel-Freunde,
ich nutze in einem VBA-Programme eine Listbox zur Anzeige von Zwischenergebnissen. Die Ergebnisse werden in einem Tabellenblatt zusammengestellt und auch die Zahlenformate eingerichet. Die Datumsanzeigen entsprechen ja eh' den Grundeinstellungen von Windows und passen so immer. Das ganze wird dann in einer mehrspaltigen ListBox zur Anzeige gebracht. Leider aber entspricht die Anzeige gelegentlich (!) im Zahlen- und Datumsformat nicht meinem Tabellenblatt. Statt meiner Punkte im Datum gibt es "/" und die amerikanische Reihenfolge und bei Zahlen werden Punkt und Komma vertauscht. Aber eben nicht jedesmal. An welcher Stelle kann man hier Einfluß nehmen? Ich möchte ja eigentlich immer das übliche deutsche Anzeigeformat. Wer hat hier eine Idee? Danke. Thomas
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zahlen- und Datumsformat in ListBox
22.01.2007 13:57:05
IngGi
Hallo Thomas,
verwende zum Befüllen der Listbox nicht die RowSource-Eigenschaft, sondern die AddItem-Methode, wenn du das nicht eh schon tust und weise den Daten schon beim Einlesen das richtige Format zu.
Mit
Me.ListBox1.ColumnCount = 3
legst du die Spaltenanzahlder Listbox fest, mit
Me.ListBox1.AddItem
fügst du eine neue Zeile hinzu und mit
Me.ListBox1.List(0, 0) = Format(Range("A1"), "dd.mm.yyyy")
fügst du in Spalte 1 der ersten Zeile (eigentlich Spalte 0 und Zeile 0) den Inhalt von Zelle A1 im deutschen Datumsformat hinzu.
Gruß Ingolf
Anzeige
AW: Zahlen- und Datumsformat in ListBox
22.01.2007 15:49:37
Thomas
Hallo Ingolf,
vielen Dank. Ich hatte auf einen einfacheren Weg gehofft. Jetzt fülle ich die ListBox einfach mit Me.ListboxDetail.RowSource = "A1:S30". Da kann ich natürlich keine Formatinformationen mitgegeben. Überlegt hatte ich, ob ich in einem Zwischenschritt aus meiner Tabelle mit Datumsangaben und formatierten Zahlen eine Tabelle mit reinem Text machen könnte, um damit die ListBox zu füllen. Der Aufwand für 19 Spalten einzeln mit Formatvorgabe ist doch sonst ziemlich hoch.
Vieleicht hat jemand noch eine Idee?
Vielen Dank.
Thomas
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zahlen- und Datumsformat in ListBox anpassen


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor in Excel, indem du ALT + F11 drückst.
  2. Füge eine UserForm hinzu und platziere eine ListBox darauf.
  3. Stelle die Anzahl der Spalten der ListBox ein:
    Me.ListBox1.ColumnCount = 3
  4. Fülle die ListBox mit der AddItem-Methode:
    Me.ListBox1.AddItem
    Me.ListBox1.List(0, 0) = Format(Range("A1"), "dd.mm.yyyy")

    Hierbei wird das Datum aus Zelle A1 im deutschen Format angezeigt.

  5. Wiederhole das Hinzufügen von Daten, um alle benötigten Zeilen und Spalten zu befüllen.

Häufige Fehler und Lösungen

  • Problem: Die ListBox zeigt falsche Datums- und Zahlenformate an.

    • Lösung: Verwende die AddItem-Methode und formatiere die Werte beim Hinzufügen, anstatt die RowSource-Eigenschaft zu verwenden. So kannst du sicherstellen, dass das richtige Format verwendet wird.
  • Problem: Formatierungsänderungen sind nicht durchgängig.

    • Lösung: Stelle sicher, dass die Zellen in deinem Excel-Blatt korrekt formatiert sind, bevor du die Werte in die ListBox überträgst.

Alternative Methoden

Eine alternative Methode besteht darin, die Daten zuvor in eine Hilfstabelle zu kopieren, in der die Werte bereits im gewünschten Format vorliegen. Diese Hilfstabelle kannst du dann direkt mit der RowSource-Eigenschaft der ListBox befüllen, allerdings ohne spezifische Formatierungen. Das ist weniger aufwendig, wenn es sich um sehr große Datenmengen handelt.


Praktische Beispiele

Hier ist ein Beispiel, wie du mehrere Datensätze in die ListBox einfügen kannst:

Dim i As Integer
For i = 1 To 10
    Me.ListBox1.AddItem
    Me.ListBox1.List(i - 1, 0) = Format(Range("A" & i), "dd.mm.yyyy") ' Datumsformat
    Me.ListBox1.List(i - 1, 1) = Format(Range("B" & i), "#,##0.00") ' Zahlenformat
Next i

In diesem Beispiel werden die Werte aus den Zellen A1 bis A10 und B1 bis B10 in die ListBox eingefügt, wobei die Formate entsprechend angepasst werden.


Tipps für Profis

  • Verwende Formatierung in VBA: Nutze die Format-Funktion, um sicherzustellen, dass die Datums- und Zahlenformate immer dem deutschen Standard entsprechen.
  • Vermeide die RowSource-Eigenschaft: Diese Methode kann die Kontrolle über die Formatierung einschränken. Bevorzuge die AddItem-Methode für mehr Flexibilität.
  • Teste die Darstellung: Überprüfe die Darstellung in der ListBox nach dem Füllen, um sicherzustellen, dass alles wie gewünscht aussieht.

FAQ: Häufige Fragen

1. Wie kann ich die ListBox mit Daten aus mehreren Spalten füllen?
Du kannst mehrere Spalten mit der List-Eigenschaft in der Schleife hinzufügen. Achte darauf, die Spaltenanzahl korrekt einzustellen.

2. Was ist der Unterschied zwischen RowSource und AddItem?
RowSource füllt die ListBox direkt aus einem Bereich, ohne Formatierungsoptionen, während AddItem dir erlaubt, jedes Element individuell zu formatieren.

3. Wie kann ich die ListBox leeren, bevor ich neue Daten hinzufüge?
Verwende Me.ListBox1.Clear, um die ListBox vor dem Hinzufügen neuer Daten zu leeren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige