Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Listbox formatieren

Listbox formatieren
28.07.2017 18:23:32
philipp
Hallo zusammen,
wie bekomme ich es hin das die Werte in der Spalte 9 bzw. J in 0,00 formatiert
werden, siehe unten hat nicht geklappt.
With ListBox1 ' betrifft die ListBox1
.Font.Size = 9 ' die Schriftgröße festlegen
.ForeColor = RGB(0, 0, 255) ' Schriftfarbe immer mit RGB
.ColumnCount = 14 ' die Anzahl der Spalten festlegen
' die Breite der Spalten festlegen
.ColumnWidths = _
("0,7 cm;1,5 cm;2 cm;4 cm;3,5 cm;2,5 cm;1 cm;1,5 cm;1,3 cm;1,5 cm;1,2 cm;3,5 cm;3 cm;1cm")
.Clear ' die ListBox leeren mzpqm nkp plz ort str nr.
.Column = aTmp
.ListIndex , 9, "0.00"
End With
gruß
philipp b
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox formatieren
28.07.2017 18:57:22
Matthias
Moin! Eine Festlegung eines Format von Anfang an für eine Spalte ist mir nicht bekannt.
Also Listindex gibt nur an, welcher der aktuelle Wert ist. Normalerweise sollten sie Werte so übernommen und angezeigt werden wie sie im Blat stehen. Wenn du dort also 2,11 hast, sollte da auch so übernommen werden. Die Werte sind nachher aber alles strings. Wenn du bspw, nur eine 2 hast und die soll als 2,00 angezigt werden, musst du das bei der Eingabe in die Listbox mit einerm Format regeln.
Geht zum Beispiel so:
Me.ListBox1.AddItem Format(Cells(2, 1), "0.00")
Bei Cells(2,1) wäre jetzt dein Wert zu ergänzen. Das musst du halt in deinen Füllalgorithmus übernehmen.
Falls du einen gesamten Bereich als Liste in die Box übergibst, müsstest du nach dem Befüllen, die Spalte neu formatiert beschreiben. Bspw. so
Me.ListBox1.List(0, 0) = Format(Me.ListBox1.List(0, 0), "0.00")
VG
Anzeige
Format wird nicht übernommen
29.07.2017 11:19:45
philipp
Guten Morgen Matthias,
habe mal dein Format eingefügt, leider kein Erfolg.
Me.ListBox1.AddItem Format(Cells(2, 8), "0.00")
Me.ListBox1.AddItem Format(Cells(2, 9), "0.00")
Ich habe aber festgestellt, wenn ich 320,00 eingebe und links oben erscheint
ein Dreieck, wird in der Eingabeleiste 320,00 angezeigt und auch in der Listbox.
In der betreffende gewünschte Spalte stehen Formeln, keine Ahnung wie das
Dreieck reinkommt.
gruß
philipp b
Anzeige
AW: Format wird nicht übernommen
29.07.2017 11:26:28
Hajo_Zi
Hallo Philipp,
bei 14 Spalten geht AddItem nicht.
Gruß Hajo
OK Hajo aber...
29.07.2017 11:37:10
philipp
Guten Morgen Hajo,
bis wie viel Spalten geht das den ?
Bei der Zelle wo das grüne Dreicke oben links steht, wird in der Bearbeitungszeile
z.b. 320,00 angezeigt also auch Komma und Nullen !
Überschreibe ich dies mit 440,00 wird das grüne Dreick entfernt und
in der Bearbeitungszeile wird auch nur 440 angezeigt.
WIESO ?
gruß
philipp b
Anzeige
AW: OK Hajo aber...
29.07.2017 12:20:38
Hajo_Zi
Hallo Phillip,
mein Vorschlag mit dem Format hat Dir also nicht gefallen, bei mehr als 10 Spalten wäre das ja die Lösung, da komplett zugewiesen wird.
Gruß Hajo
Doch aber
29.07.2017 12:29:14
philipp
Hallo Hajo,
habe die Zellen mit: "Zahl" und 2 Dezimalstellen,
formatiert.
Hatte aber noch diese Frage:
Bei der Zelle wo das grüne Dreicke oben links steht, wird in der Bearbeitungszeile
z.b. 320,00 angezeigt also auch Komma und Nullen !
Überschreibe ich dies mit 440,00 wird das grüne Dreick entfernt und
in der Bearbeitungszeile wird auch nur 440 angezeigt.
WIESO ?
gruß
philipp b
Anzeige
AW: Doch aber
29.07.2017 12:53:06
Hajo_Zi
Hallo Philipp,
da ist richtig, da nur Format.
Grünes Dreieck bedeutet das die Zelle nicht zu den Zellen passt daneben.
Welche Logik da auch hinter stehen mag.
Gruß Hajo
Danke für die Hilfe, habe Lösung... -)
29.07.2017 13:44:34
philipp
Hallo Hajo und Matthias,
ich habe die Lösung gefunden, per Zufall !
Ich habe diese beiden Zeilen:
' Me.ListBox1.List = Sheets(sBlattname).Range("A3:N" & LoLetzte2).Value ' neu daniel
Me.ListBox1.RowSource = sBlattname & "!A3:N" & LoLetzte2
bei der 1.Zeile werden die Zahlen nicht so dargestellt, bei der 2. Zeile so wie
ich diese haben möchte.
Schönes Wochenende
gruß
philipp b
Anzeige
AW: Listbox formatieren
28.07.2017 19:34:08
Hajo_Zi
Hallo Philipp,
formatiere die Tabelle entsprechend.

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben, mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Anzeige
Danke Matthias und Hajo für die Tips -)
28.07.2017 23:18:05
philipp
;
Anzeige

Infobox / Tutorial

Listbox formatieren in Excel


Schritt-für-Schritt-Anleitung

  1. Erstelle deine ListBox: Gehe in den Entwicklermodus und füge eine ListBox in dein Arbeitsblatt ein.

  2. Setze die Eigenschaften: Nutze den folgenden VBA-Code, um die ListBox zu formatieren:

    With ListBox1
       .Font.Size = 9
       .ForeColor = RGB(0, 0, 255)
       .ColumnCount = 14
       .ColumnWidths = "0,7 cm;1,5 cm;2 cm;4 cm;3,5 cm;2,5 cm;1 cm;1,5 cm;1,3 cm;1,5 cm;1,2 cm;3,5 cm;3 cm;1 cm"
       .Clear
       .Column = aTmp
    End With
  3. Werte formatieren: Um Werte in Spalte 9 (J) im Format 0,00 anzuzeigen, nutze den folgenden Code:

    Me.ListBox1.AddItem Format(Cells(2, 9), "0.00")

    Ersetze Cells(2, 9) mit dem entsprechenden Zellbereich.

  4. Problem mit Formeln: Wenn du feststellst, dass die ListBox nicht die gewünschten Werte anzeigt, überprüfe, ob in der Zelle Formeln vorhanden sind. Um sicherzustellen, dass die Werte richtig übernommen werden, benutze:

    Me.ListBox1.List(0, 0) = Format(Me.ListBox1.List(0, 0), "0.00")

Häufige Fehler und Lösungen

  • Problem: Werte werden als Strings angezeigt.

    • Lösung: Verwende Format, um die Werte beim Hinzufügen zur ListBox zu formatieren.
  • Problem: Format wird nicht übernommen.

    • Lösung: Stelle sicher, dass du die Werte korrekt mit Format(Cells(row, column), "0.00") hinzufügst.
  • Problem: Grünes Dreieck in Zelle.

    • Lösung: Das Dreieck zeigt an, dass der Wert nicht mit den angrenzenden Zellen übereinstimmt. Überprüfe die Formatierung und stelle sicher, dass sie übereinstimmt.

Alternative Methoden

Eine alternative Möglichkeit, Werte in der ListBox anzuzeigen, ist die Verwendung der RowSource-Eigenschaft. Dies ermöglicht dir, einen Bereich aus einem Arbeitsblatt zu referenzieren:

Me.ListBox1.RowSource = sBlattname & "!A3:N" & LoLetzte2

Diese Methode sorgt dafür, dass die Werte in der ListBox im richtigen Format angezeigt werden.


Praktische Beispiele

  • Beispiel 1: Füge Werte aus einer Tabelle hinzu:

    Dim i As Integer
    For i = 1 To 10
      Me.ListBox1.AddItem Format(Cells(i, 1), "0.00")
    Next i
  • Beispiel 2: Setze die Werte aus einer bestimmten Spalte in die ListBox:

    Dim rng As Range
    Set rng = Sheets("Datenblatt").Range("J1:J10")
    For Each cell In rng
      Me.ListBox1.AddItem Format(cell.Value, "0.00")
    Next cell

Tipps für Profis

  • Verwende Named Ranges: Benutze benannte Bereiche für deine Daten, um die Wartbarkeit des Codes zu erhöhen.
  • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen, um unerwartete Eingaben oder Formate abzufangen.
  • Dynamische Anpassung: Erwäge, die Anzahl der Spalten und deren Breite dynamisch anzupassen, abhängig von der Datenmenge.

FAQ: Häufige Fragen

1. Wie viele Spalten kann ich in einer ListBox verwenden? Normalerweise können bis zu 10 Spalten in einer ListBox verwendet werden. Bei mehr als 10 Spalten solltest du andere Methoden in Betracht ziehen, wie z.B. die Verwendung von RowSource.

2. Warum wird ein grünes Dreieck in meinen Zellen angezeigt? Das grüne Dreieck weist darauf hin, dass der Wert in der Zelle nicht mit den anderen Zellen in derselben Spalte übereinstimmt. Dies kann durch unterschiedliche Formate verursacht werden. Überprüfe die Formatierung der Zellen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige