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

Forumthread: Währungsformat in mehrpsaltiger Listbox

Währungsformat in mehrpsaltiger Listbox
24.11.2004 14:50:47
Dieter.K
Hallo Forum,
ich habe ein Problem mit einer mehrspaltigen Listbox.
Über folgendes Makro wird die Listbox gefüllt. Leider wird die Spalte mit
der Währung ohne Format (ohne € und auch ohne Nachkommastellen) ausgegeben.

Sub AngeboteFilter()
Dim sFilter As String
Application.ScreenUpdating = False
sFilter = Worksheets("Daten").Range("I2")
If sFilter = "" Then Exit Sub
Worksheets("Angebote").Activate
Columns("A:W").AutoFilter Field:=9, Criteria1:=sFilter
Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy
Workbooks.Add
Range("A1").PasteSpecial xlPasteValues
Rows(1).Delete
ListBox1.List = Range("A1").CurrentRegion.Value
Columns("D:D").Select
Selection.NumberFormat = "#,##0.00 €"
ActiveWorkbook.Close savechanges:=False
ListBox1.ListIndex = 0
Columns("A:W").AutoFilter
End Sub

Was mache ich falsch?
Hat jemand einen Tipp für mich?
Danke im Voraus.
Gruß
Dieter.K
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Währungsformat in mehrpsaltiger Listbox
ChrisL
Hi Dieter

Sub AngeboteFilter()
Dim WS1 As Worksheet, WS2 As Worksheet
Dim iZeile As Long, iZaehler As Long
Dim iSpalte As Integer
Set WS1 = Worksheets("Daten")
Set WS2 = Worksheets("Angebote")
ReDim Arr(WorksheetFunction.CountIf(WS2.Columns(9), WS1.Range("I2")) - 1, 22)
For iZeile = 1 To WS2.Range("I65536").End(xlUp).Row
If WS2.Cells(iZeile, 9) = WS1.Range("I2") Then
For iSpalte = 1 To 23
If iSpalte = 4 Then
Arr(iZaehler, iSpalte - 1) = Format(WS2.Cells(iZeile, iSpalte), "#,##0.00 €")
Else
Arr(iZaehler, iSpalte - 1) = WS2.Cells(iZeile, iSpalte)
End If
Next iSpalte
iZaehler = iZaehler + 1
End If
Next iZeile
With ListBox1
.ColumnCount = 23
.List = Arr
End With
End Sub

Gruss
Chris
Anzeige
AW: Währungsformat in mehrpsaltiger Listbox
24.11.2004 21:01:04
Dieter.K
Hallo Chris,
genial!!
Kann ich jetzt auch noch erreichen, daß in der Listbox nur die Spalten A,C,E,F,S angezeigt werden. Spalte F soll hierbei die €-Formatierung erhalten.
(Also vor dem Eintrag in die Listbox die übrigen Spalten ausblenden und beim verlassen wieder einblenden)
Wenn Du hierfür auch noch eine Lösung hast, kann ich mir ein paar meiner grauen Haare wieder färben lassen :-)
Gruß
Dieter.K
Anzeige
AW: Währungsformat in mehrpsaltiger Listbox
ChrisL
Hi Dieter
Graue Haare färben ist gut... willkommen im Club
Hier das Makro

Sub AngeboteFilter()
Dim WS1 As Worksheet, WS2 As Worksheet
Dim iZeile As Long, iZaehler As Long
Set WS1 = Worksheets("Daten")
Set WS2 = Worksheets("Angebote")
ReDim Arr(WorksheetFunction.CountIf(WS2.Columns(9), WS1.Range("I2")) - 1, 4)
For iZeile = 1 To WS2.Range("I65536").End(xlUp).Row
If WS2.Cells(iZeile, 9) = WS1.Range("I2") Then
Arr(iZaehler, 0) = WS2.Cells(iZeile, 1)
Arr(iZaehler, 1) = WS2.Cells(iZeile, 3)
Arr(iZaehler, 2) = WS2.Cells(iZeile, 5)
Arr(iZaehler, 3) = Format(WS2.Cells(iZeile, 6), "#,##0.00 €")
Arr(iZaehler, 4) = WS2.Cells(iZeile, 19)
iZaehler = iZaehler + 1
End If
Next iZeile
With ListBox1
.ColumnCount = 5
.List = Arr
End With
End Sub

Gruss
Chris
Anzeige
AW: Währungsformat in mehrpsaltiger Listbox
25.11.2004 16:31:58
Dieter.K
Hallo Chris,
wie schon gesagt: GENIAL !!
Funktioniert SUPER.
Ich schaffe es sogar, Dein Makro nachzuvollziehen und habe dabei wieder viel gelernt.
Danke!
Gruß
Dieter.K
Danke für die Rückmeldung o.T.
ChrisL
.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Währungsformat in mehrspaltiger Listbox


Schritt-für-Schritt-Anleitung

Um das Währungsformat in einer mehrspaltigen Listbox korrekt anzuzeigen, kannst du das folgende VBA-Makro verwenden. Dieses Beispiel zeigt, wie du die Währungsformatierung für eine spezifische Spalte festlegst.

  1. Öffne deine Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul ein (Einfügen > Modul).
  3. Kopiere und füge den folgenden Code in das Modul ein:
Sub AngeboteFilter()
    Dim WS1 As Worksheet, WS2 As Worksheet
    Dim iZeile As Long, iZaehler As Long
    Set WS1 = Worksheets("Daten")
    Set WS2 = Worksheets("Angebote")
    ReDim Arr(WorksheetFunction.CountIf(WS2.Columns(9), WS1.Range("I2")) - 1, 4)

    For iZeile = 1 To WS2.Range("I65536").End(xlUp).Row
        If WS2.Cells(iZeile, 9) = WS1.Range("I2") Then
            Arr(iZaehler, 0) = WS2.Cells(iZeile, 1)
            Arr(iZaehler, 1) = WS2.Cells(iZeile, 3)
            Arr(iZaehler, 2) = WS2.Cells(iZeile, 5)
            Arr(iZaehler, 3) = Format(WS2.Cells(iZeile, 6), "#,##0.00 €")
            Arr(iZaehler, 4) = WS2.Cells(iZeile, 19)
            iZaehler = iZaehler + 1
        End If
    Next iZeile

    With ListBox1
        .ColumnCount = 5
        .List = Arr
    End With
End Sub
  1. Schließe den VBA-Editor und kehre zu deiner Excel-Datei zurück.
  2. Weise das Makro einem Button oder einem anderen Steuerelement zu, um es auszuführen.

Häufige Fehler und Lösungen

  • Fehler: Währungsformat wird nicht angezeigt

    • Lösung: Stelle sicher, dass du das Format im VBA-Code korrekt angibst. Verwende Format(WS2.Cells(iZeile, 6), "#,##0.00 €"), um die Währungsformatierung anzuwenden.
  • Fehler: ListBox zeigt nur leere Werte

    • Lösung: Überprüfe, ob der Filter tatsächlich Ergebnisse zurückgibt. Stelle sicher, dass der Wert in WS1.Range("I2") korrekt ist und in der 9. Spalte von WS2 vorhanden ist.

Alternative Methoden

Wenn du keine VBA-Lösungen verwenden möchtest, kannst du auch die Zellen in Excel direkt formatieren, bevor du sie in die Listbox überträgst. Gehe zu den Zellen, die du formatieren möchtest, und wähle das Währungsformat über die Excel-Oberfläche aus. Dies hat jedoch keine Auswirkungen auf die Listbox-Darstellung.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du die Währungsformatierung in einer Listbox anzeigen lassen kannst:

Sub BeispielFormat()
    Dim myList As Variant
    myList = Array("1000", Format(1500.5, "#,##0.00 €"), "2000")

    With ListBox1
        .ColumnCount = 1
        .List = myList
    End With
End Sub

In diesem Beispiel wird die zweite Zeile in der Listbox mit dem Währungsformat angezeigt.


Tipps für Profis

  • Nutze die Format-Funktion, um sicherzustellen, dass Zahlen in der Listbox korrekt angezeigt werden.
  • Achte darauf, die Anzahl der Spalten in der Listbox (.ColumnCount) anzupassen, wenn du die Daten dynamisch änderst.
  • Experimentiere mit verschiedenen Währungsformaten, um die Anzeige an deine Bedürfnisse anzupassen.

FAQ: Häufige Fragen

1. Wie kann ich mehr Spalten in der Listbox anzeigen?
Du kannst die ColumnCount-Eigenschaft der Listbox erhöhen und die entsprechenden Werte in das Array einfügen.

2. Funktioniert das Makro auch in Excel 365?
Ja, das Makro ist kompatibel mit Excel 365 sowie anderen Versionen von Excel, die VBA unterstützen.

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