ich brauch eure Hilfe. Ich habe folgendes Problem:
Folgender Code aus dem Forum läuft ab, wenn ein TextBox.Change Ereignis ausgelöst wird. Die Listbox wird mit 34 Spalten gefüllt. Nun möchte ich, dass bei jeder Veränderung aller TextBoxen die Listbox neu gefüllt wird. Das funktioniert mit dem Code auch gut, allerdings muss ich das ganze in Abhängigkeit von insgesamt 32 TextBoxen realisieren. Habe dies schon mit 11 TextBoxen realisiert.
Meine Frage nun....gibt es eine elegantere Lösung als den Code so wie unten zu erweitern?
Die Zweite Frage: Kann man das ganze so gestalten, dass ich Spaltenüberschriften hinbekomme? Denn 34 Spalten ohne Überschriften ist nicht wirklich komfortabel!
HOFFE AUF HILFE!!!
Hier mein Code:
Private Sub prcFillListbox()
If bolNoAction = True Then Exit Sub
Dim arrListe, lngJ As Long, lngL As Long, Spalte As Long
Dim strNN As String, strVN As String, strSTR As String, strHNR As String, strPLZ As String, _
strORT As String, strTELF As String, _
strTELM As String, strFAX As String, strMAIL As String, strADRQ As String
strNN = LCase(Me.TextBox2.Value)
strVN = LCase(Me.TextBox3.Value)
strSTR = LCase(Me.TextBox4.Value)
strHNR = LCase(Me.TextBox5.Value)
strPLZ = LCase(Me.TextBox6.Value)
strORT = LCase(Me.TextBox7.Value)
strTELF = LCase(Me.TextBox8.Value)
strTELM = LCase(Me.TextBox9.Value)
strFAX = LCase(Me.TextBox10.Value)
strMAIL = LCase(Me.TextBox11.Value)
strADRQ = LCase(Me.TextBox12.Value)
ReDim arrListe(1 To 34, LBound(arrData, 1) To UBound(arrData, 1))
For lngL = LBound(arrData, 1) To UBound(arrData, 1)
If LCase(Left(arrData(lngL, 4), Len(strNN))) = strNN Or strNN = "" Then 'Nachname
If LCase(Left(arrData(lngL, 5), Len(strVN))) = strVN Or strVN = "" Then 'Vorname
If LCase(Left(arrData(lngL, 6), Len(strSTR))) = strSTR Or strSTR = "" Then 'Straße
If LCase(Left(arrData(lngL, 7), Len(strHNR))) = strHNR Or strHNR = "" Then 'Hausnummer
If LCase(Left(arrData(lngL, 8), Len(strPLZ))) = strPLZ Or strPLZ = "" Then 'PLZ
If LCase(Left(arrData(lngL, 9), Len(strORT))) = strORT Or strORT = "" Then 'Ort
If LCase(Left(arrData(lngL, 10), Len(strTELF))) = strTELF Or strTELF = "" Then 'Tel. _
Festnetz
If LCase(Left(arrData(lngL, 11), Len(strTELM))) = strTELM Or strTELM = "" Then 'Tel. _
Mobil
If LCase(Left(arrData(lngL, 12), Len(strFAX))) = strFAX Or strFAX = "" Then 'Fax
If LCase(Left(arrData(lngL, 13), Len(strMAIL))) = strMAIL Or strMAIL = "" Then 'Mail
If LCase(Left(arrData(lngL, 14), Len(strADRQ))) = strADRQ Or strADRQ = "" Then ' _
Adressquelle
lngJ = lngJ + 1
For Spalte = 1 To 34
arrListe(Spalte, lngJ) = arrData(lngL, Spalte)
Next
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
Next
Me.ListBox1.Clear
If lngJ > 0 Then
ReDim Preserve arrListe(1 To 34, 1 To lngJ)
Me.ListBox1.Column = arrListe
End If
Erase arrListe
End Sub
Gruß DirkR