Problem mit Event
23.04.2014 10:57:21
ANNAnas
ich habe ein Problem mit einem Event...hier erstmal der Quellcode:
Private Sub TextBox1_Enter()
Dim rng As Range
Set rng = Sheets("Übersichtsliste").Range("C:C").Find(What:=TextBox1.Text, Lookat:=xlWhole, _
LookIn:=xlValues)
ListBox2.Clear
If InStr(1, TextBox1.Value, "-1") > 0 Then
ListBox2.List = rng.Resize(2, 1).Value
End If
End Sub
In der Listbox2 kann man dann, wenn der Suchbegriff in der Textbox1 enthalten ist, auswählen und alle anderen Textboxen werden gefüllt:Private Sub ListBox2_Click()
Dim lZeile As Long
'Wenn der Benutzer einen Namen anklickt, suchen wir
'diesen in der Tabelle1 heraus und tragen die Daten
'in die TextBoxen ein.
'Wir löschen standardmäßig alle bisherigen TextBoxen-Inhalte
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox5 = ""
TextBox6 = ""
TextBox7 = ""
TextBox8 = ""
TextBox9 = ""
TextBox10 = ""
TextBox11 = ""
TextBox12 = ""
TextBox13 = ""
TextBox14 = ""
TextBox15 = ""
TextBox16 = ""
TextBox17 = ""
TextBox18 = ""
TextBox19 = ""
TextBox20 = ""
TextBox21 = ""
TextBox22 = ""
TextBox23 = ""
TextBox24 = ""
TextBox25 = ""
TextBox28 = ""
'Nur wenn ein Eintrag selektiert/markiert ist
If ListBox2.ListIndex >= 0 Then
lZeile = 13 'Start in Zeile 13, Zeile 1 sind ja die Überschriftrn
'Schleife solange etwas in der ersten Spalte in Tabelle 1 drin steht
Do While Trim(CStr(Tabelle1.Cells(lZeile, 3).Value)) "" '13 Zeile & 3 Spalte
'Der Namen aus der ListBox1 wird aus der Tabelle1 Spalte 1
'in die Textboxen übertragen
If ListBox2.Text = Trim(CStr(Tabelle1.Cells(lZeile, 3).Value)) Then
'TextBoxen füllen
TextBox1 = Trim(CStr(Tabelle1.Cells(lZeile, 3).Value))
TextBox2 = Tabelle1.Cells(lZeile, 5).Value
TextBox3 = Tabelle1.Cells(lZeile, 4).Value
TextBox4 = Tabelle1.Cells(lZeile, 74).Value
TextBox5 = Tabelle1.Cells(lZeile, 75).Value
TextBox6 = Tabelle1.Cells(lZeile, 13).Value
TextBox7 = Tabelle1.Cells(lZeile, 14).Value
TextBox8 = Tabelle1.Cells(lZeile, 15).Value
TextBox9 = Tabelle1.Cells(lZeile, 16).Value
TextBox10 = Tabelle1.Cells(lZeile, 17).Value
TextBox11 = Tabelle1.Cells(lZeile, 18).Value
TextBox12 = Tabelle1.Cells(lZeile, 19).Value
TextBox13 = Tabelle1.Cells(lZeile, 20).Value
TextBox14 = Tabelle1.Cells(lZeile, 83).Value
TextBox15 = Tabelle1.Cells(lZeile, 84).Value
TextBox16 = Tabelle1.Cells(lZeile, 85).Value
TextBox17 = Tabelle1.Cells(lZeile, 86).Value
TextBox18 = Tabelle1.Cells(lZeile, 87).Value
TextBox19 = Tabelle1.Cells(lZeile, 88).Value
TextBox20 = Tabelle1.Cells(lZeile, 89).Value
TextBox21 = Tabelle1.Cells(lZeile, 90).Value
TextBox22 = Tabelle1.Cells(lZeile, 91).Value
TextBox23 = Tabelle1.Cells(lZeile, 80).Value
TextBox24 = Tabelle1.Cells(lZeile, 81).Value
TextBox25 = Tabelle1.Cells(lZeile, 82).Value
TextBox28 = Tabelle1.Cells(lZeile, 92).Value
Exit Do 'Vorzeitiges Ende, da der Datensatz schon gefunden ist
End If
lZeile = lZeile + 1 'Nächste Zeile bearbeiten
Loop
End If
End Sub
Zum verständnis:In der Textbox1 ist der Primärschlüssel enthalten und vordifinert. Das heißt, der Benutzer kann keine Änderungen daran anstellen. Alle anderen Textboxen werden anhand dessen gefüllt usw...Das zur Vorgeschichte. Interessant ist dieser Punkt:Private Sub TextBox1_Enter()
End Sub
Wenn dieses Event drinne steht, funktioniert alles Reibungslos. Ändere ich es auf _Change kann ich nicht mehr aus der Listbox2 einen Eintrag wählen...Kann mir jemand erklären warum?
Vielen Dank im Vorraus :)