AW: Frage an Rudi Maintaire
23.07.2007 13:35:00
AndreasR
Hallo Excelfreunde
Hallo Rudi
Jetzt habe ich noch ein Problem
Ich habe eine Tabelle Adressen Beginnend mit Datensätzen in Zeile3 (In Zeile 2 stehen die Überschriften)
Überschriften: A2 = Kategorie
B2 = Untergategorie
C2 = Text1
D2 = Text2
E2 = ID-Nummer (ist eine Fortlaufende Nummer)
Folgendes passiert: Wenn ich in der UserForm1 durch Auswahl in der ComboBox 1 (Werte werden aus Spalte A eingelesen) einen Wert anklicke, wird durch dessen Auswahl die ListBox1 gefüllt( Werte aus Spalte B) Das funktioniert auch.
Mein Problem ist folgendes:
Ich muß mein Makro dahingehend vervollständigen, das wenn ich einen Eintrag in der ListBox1 anklicke die entsprechenden Textboxen mit den dazugehörigen Datensätzen aus Tabelle Adressen) gefüllt werden.
TextBox1 = Wert aus Tabelle Adressen Spalte A
TextBox2 = Wert aus Tabelle Adressen Spalte B
TextBox3 = Wert aus Tabelle Adressen Spalte C
TextBox4 = Wert aus Tabelle Adressen Spalte D
TextBox5 = Wert aus Tabelle Adressen Spalte E
Wie müsste ich das Makro dahingehend noch ändern?
Private Sub ComboBox1_Click()
'füllt die ComboBox1 und ListBox1 mit den Datensätzen
Dim strAuswahl As String, vntTmp(), iTmp As Integer
Dim i As Integer
'ComboBox2.Clear
ListBox1.Clear
strAuswahl = UserForm1.ComboBox1.Text
i = 2
With Sheets("Adressen")
Do While .Cells(i, 1) ""
If .Cells(i, 1) = strAuswahl And _
WorksheetFunction.CountIf(.Range(.Cells(2, 2), .Cells(i, 2)), .Cells(i, 2)) = 1 Then
iTmp = iTmp + 1
ReDim Preserve vntTmp(1 To iTmp)
vntTmp(iTmp) = .Cells(i, 2)
End If
i = i + 1
Loop
End With
If iTmp > 0 Then
QuickSort vntTmp 'hier wird auf das Makro '
Private Sub QuickSort' zugegriffen
'ComboBox2.List = WorksheetFunction.Transpose(WorksheetFunction.Transpose(vntTmp))
ListBox1.List = WorksheetFunction.Transpose(WorksheetFunction.Transpose(vntTmp))
'hier sollen jetzt anhand des entsprechend gewählten Eintrages aus der ListBox1
'die Daten aus der Tabelle "Adressen" dementsprechend in die TextBox'en übernommen werden
'so wie der Code ab hier läuft funktioniert das aber nicht
'wie muß das geändert werden, bzw. an welche Stelle muß die Code Zeilen einfügen
'damit der die Auswahl aus ListBox1 in die TextBox geschrieben wird
Dim r%
'ListBox1.Clear
r = ListBox1.ListIndex + 3
ListBox1.Text = Sheets("Adressen").Cells(r, 2) 'Leistung für:
TextBox1.Text = Cells(r, 1) 'Eingabe Kategorie
TextBox16.Text = Cells(r, 2) 'Eingabe Unterkategorie
TextBox17.Text = Cells(r, 3) 'Eingabe Betreff Zeile
TextBox15.Text = Cells(r, 4) 'Eingabe Textbaustein
TextBox14.Text = Cells(r, 5) 'ID.Nr.
End If
End Sub
Private Sub QuickSort(ByRef VA_array, Optional V_Low1, Optional V_high1)
On Error Resume Next
Dim V_Low2, V_high2, V_loop As Integer
Dim V_val1, V_val2 As Variant
If IsMissing(V_Low1) Then
V_Low1 = LBound(VA_array, 1)
End If
If IsMissing(V_high1) Then
V_high1 = UBound(VA_array, 1)
End If
V_Low2 = V_Low1
V_high2 = V_high1
V_val1 = VA_array((V_Low1 + V_high1) / 2)
While (V_Low2 V_val1 And _
V_high2 > V_Low1)
V_high2 = V_high2 - 1
Wend
If (V_Low2 V_Low1) Then Call _
QuickSort(VA_array, V_Low1, V_high2)
If (V_Low2
Vielen Dank nochmals
Den Lösungsansatz hatte ich schon von Dir erhalten nochmals vielen Dank
Gruß Andreas