Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1356to1360
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Problem mit Event

Problem mit Event
23.04.2014 10:57:21
ANNAnas
Guten Morgen allerseits :)
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 :)

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

Betreff
Datum
Anwender
Anzeige
AW: Problem mit Event
23.04.2014 11:27:40
fcs
Hallo ANNAnas,
wenn du auf einen Eintrag in der Listbox klicks, dann wird ja auch der Wert von Textbox1 vom Makro geändert und dadurch wird das Textbox1_Change-Makro gestartet.
Hier kommt es dann zu Rückkopplungseffekten.
Gruß
Franz

Verstehst du den Unterschied...
23.04.2014 11:33:19
EtoPHG
der beiden Events? Anna
_Change tritt nach jeder einzelnen Veränderung des Inhalts ein.
_Enter bevor das Control den Fokus erhält, das heisst (normalerweise) 1 mal.
Ich vermute mal bei einem Change hast du immer ne leere Listbox, da du jedesmal leerst aber die Bedingung erst wieder zutrifft, wenn irgendwo "-1" in der Textbox steht.
Was du da zusammenbastelst ist sowieso ziemlich undurchsichtig und gelinde gesagt seltsam... ;-)
Gruess Hansueli

Anzeige
AW: Verstehst du den Unterschied...
23.04.2014 13:07:54
ANNAnas
Ok, ich habe den Unterschied verstanden :)
Danke nochmals, habe es jetzt auch hinbekommen^^

und warum lässt du dann denn Thread offen (owT)
23.04.2014 14:04:39
EtoPHG

AW: und warum lässt du dann denn Thread offen (owT)
23.04.2014 14:16:21
ANNAnas
#close :D

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige