Code-Problem
21.02.2008 13:13:00
Frederic
ich habe noch ein kleines Code-Problem, bis auf dieses laufen meine UF perfekt:
Ich habe den einen Teil vom Code. Dieser steuert eine ListBox (ListBox1) mit übereinstimmenden Suchkriterien (TextBox1) und zeigt diese an (Daten aus Sheet "Liste").
Soweit so gut.
Dann hatte ich das Problem, dass 3 Spalten in der ListBox Zahlen enthalten und ich diese formatieren wollte zwecks besserer Veranschaulichung.
Auch diesen habe ich dank Eurer Hilfe erfolgreich einbauen können.
Nun das Problem:
Wenn ich in meiner Textbox1 ein Suchkriterium eingebe, findet er zwar die Werte, aber die Formatierung greift hier nicht, da nicht in diesem Codeabschnitt enthalten.
Wie bringe ich beiden u.g. Codes miteinander zum Laufen?
Code1 (Steuert die Suchfunktion in der ListBox1 mit TextBox1):
Private Sub TextBox1_Change()
Sheets("Liste").Visible = True
Sheets("Liste").Select
Dim arr() As Variant
Dim Index As Integer
Dim iCount As Integer
Dim X As Long
X = Sheets("Liste").Cells(Rows.Count, "A").End(xlUp).Row
If TextBox1.Value = "" Then
ListBox1.RowSource = "A7:H" & X 'Bereich definieren
Exit Sub
End If
ListBox1.RowSource = ""
ListBox1.Clear
iCount = 0
For Index = 3 To X
If LCase(Left(Cells(Index, 2), Len(TextBox1))) = LCase(TextBox1) Then
If Sheets("Liste").Cells(Index, 2) "" Then
On Error Resume Next
ReDim Preserve arr(7, iCount)
arr(0, iCount) = Cells(Index, 1).Value
arr(1, iCount) = Cells(Index, 2).Value
arr(2, iCount) = Cells(Index, 3).Value
arr(3, iCount) = Cells(Index, 4).Value
arr(4, iCount) = Cells(Index, 5).Value
arr(5, iCount) = Cells(Index, 6).Value
arr(6, iCount) = Cells(Index, 7).Value
arr(7, iCount) = Cells(Index, 8).Value
iCount = iCount + 1
ListBox1.Column = arr
End If
End If
Next
'Sheets("Liste").Visible = xlVeryHidden
End Sub
Code 2 (Dieser soll die Formatierung steuern, sprich Update bei jeglicher Eingabe eines Suchkriteriums):
Private Sub UserForm_Initialize()
Dim i
Dim vntArr
With Sheets("Liste")
vntArr = .Range(.Cells(7, 8), .Cells(65536, 1).End(xlUp))
End With
' Spalten im Array vor List formatieren (i, 3)=Spaltennummer
For i = 1 To UBound(vntArr)
vntArr(i, 3) = Format(vntArr(i, 3), "#,##0.00") 'Spalte C "Amount"
vntArr(i, 5) = Format(vntArr(i, 5), "#,##0.00") 'Spalte E "Net amount"
vntArr(i, 6) = Format(vntArr(i, 6), "#,##0.00") 'Spalte F "Tax amount"
Next i
With Me.ListBox1
.ColumnCount = UBound(vntArr, 2)
.List = vntArr
End With
End Sub
Vielleicht findet ihr eine Lösung, die beiden Codes zu "vereinen".
Gruß
Frederic