Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1456to1460
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

Probleme mit TextBox und ListBox

Probleme mit TextBox und ListBox
05.11.2015 13:43:26
Michael
Hallo Zusammen,
ich hoffe ihr könnt mir helfen. Ich habe eine Tabelle, die durch TextBoxen auf einem UserForm gefüllt werden. Nun ist es so, dass auf einem anderen Userform mittels einer TextBox (Suchkriterium = vergebene Nummer) die passende Zeile/n in einer ListBox1 angezeigt werden. Durch Klick auf den ListBox Eintrag, werden die Textboxen gefüllt und in einer anderen leeren TextBox, wird nur noch das Datum ergänzt. Durch Klick auf ein CommandButton wir die entsprechende Zeile an die Tabelle übergeben und geändert. Das klappt alles soweit.
Mein Problem ist, dass ich:
1. nur eine Markierung im ListBox anklicken kann. Wenn ich eine andere Markierung anklicke bringt er mir eine Fehlermeldung. Die ListBox Eigenschaft ist auf Single gestellt.
2. Zeigt er mir zuviele Ergebnisse an. Ich möchte nur, dass die Zeile angezeigt
wird, welche dem Suchkriterum (Zahl)entspricht. Aber nur diese, wo das Datum noch ergänzt werden muss.
Hier mal meine Codes:

Private Sub CommandButton3_Click()
Dim Found As Range
Dim FirstAddress As String
Dim Search As String
Dim Zeile As Long
Zeile = 0
Search = TextBox2
If Search = "" Then Exit Sub
Me.ListBox1.ColumnCount = 9
Me.ListBox1.ColumnWidths = "0;170;70;0;263;0;150;0;0"
With Sheets("Tabelle1").Range("A6:A65536")
Set Found = .Find(Search, LookIn:=xlValues, LookAt:=xlWhole)
TextBox2.Tag = ""
TextBox15 = ""
If Not Found Is Nothing Then
FirstAddress = Found.Address
Do
TextBox2.Tag = TextBox2.Tag & ";" & Found.Row
Me.ListBox1.AddItem
Me.ListBox1.List(Zeile, 1) = Found.Offset(0, 1)
Me.ListBox1.List(Zeile, 2) = Found.Offset(0, 2)
Me.ListBox1.List(Zeile, 3) = Found.Offset(0, 3)
Me.ListBox1.List(Zeile, 4) = Found.Offset(0, 4)
Me.ListBox1.List(Zeile, 5) = Found.Offset(0, 5)
Me.ListBox1.List(Zeile, 6) = Found.Offset(0, 6)
Me.ListBox1.List(Zeile, 7) = Found.Offset(0, 7)
Me.ListBox1.List(Zeile, 8) = Found.Offset(0, 8)
Me.ListBox1.List(Zeile, 9) = Found.Offset(0, 9)
Set Found = .FindNext(Found)
Zeile = Zeile + 1                               '
Loop While Not Found Is Nothing And Found.Address  FirstAddress
If Zeile = 1 Then
End If
Else
TextBox15.Text = "Keine fortlaufende Nummer gefunden"
ListBox1.Clear
End If
End With
TextBox2.Tag = Mid(TextBox2.Tag, 2)

Private Sub ListBox1_Click()
Dim selected As Integer
selected = Me.ListBox1.ListIndex
Me.TextBox1 = Me.ListBox1.List(selected, 1)
Me.TextBox3 = Me.ListBox1.List(selected, 2)
Me.TextBox4 = Me.ListBox1.List(selected, 4)
Me.TextBox5 = Me.ListBox1.List(selected, 6)
Me.TextBox6 = Me.ListBox1.List(selected, 7)
Me.TextBox7 = Me.ListBox1.List(selected, 8)
TextBox2.Tag = Split(TextBox2.Tag, ";")(selected)
End Sub

--------------------------------------------------------------------
Sheets("Tabelle1").Visible = True
Sheets("Tabelle1").Select
ActiveSheet.Unprotect
Dim manipulierte_Zeile As Integer
If TextBox2.Tag = "" Then Exit Sub
manipulierte_Zeile = CLng(TextBox2.Tag)
Sheets("Tabelle1").Cells(manipulierte_Zeile, 2) = Format(TextBox1, "DD.MM.YYYY")
Sheets("Tabelle1").Cells(manipulierte_Zeile, 3) = Format(TextBox3.Text)
Sheets("Tabelle1").Cells(manipulierte_Zeile, 5) = Format(TextBox4.Text)
Sheets("Tabelle1").Cells(manipulierte_Zeile, 7) = Format(TextBox5.Text)
Sheets("Tabelle1").Cells(manipulierte_Zeile, 8) = Format(TextBox6.Text)
Sheets("Tabelle1").Cells(manipulierte_Zeile, 9) = Format(TextBox7, "DD.MM.YYYY")
ActiveSheet.Protect
Sheets("Tabelle1").Visible = False
TextBox2.Tag = ""
Unload Me
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox5 = ""
TextBox6 = ""
TextBox7 = ""
With Me.ListBox1
If .ListIndex > -1 Then .RemoveItem (.ListIndex)
End With
UserForm7.Show
UserForm3.Hide

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Probleme mit TextBox und ListBox
06.11.2015 01:09:38
fcs
Hallo Michael,
du solltest deinen Code mal etwas aufräumen (Leerzeilen löschen)
zu 1.)
Das Problem ist die Art, wie du versuchst die Zeileninformation der in der Listbox gesammelten Fundstellen zu verarbeiten.
Nachdem du du das erste Mal auf einen Listebox-Eintrag geklickt hast dann steht nur noch die Zeilen-Nummer des selektierten Eintrags in Textbox2.Tag. Die durch Semikolon getrennten Zeilennummern hast du überschrieben. Beim nächsten Klick auf einen Eintrag liefert Split(Textbox2.Tag,";") nur noch ein Array mit einem Wert und es gibt außer beim 1. LListbox-Eintrag einen Indexfehler.
Lies die Zeilenummern in die 0. Spalte der Listbox1.List ein. Dann benötigst du den Umweg über Split der Textbox2.Tag-Wertes nicht mehr, sondern kannst aus dem selektierten Listbox-Eintrag die Zeilennummer ermitteln.
zu 2.) - zu viele Werte
kann ich wenig schreiben. Du musst dann in der Do-Loop-Schleife zusätzlich prüfen, ob in der gefundenen Zeile die Spalte für das Datum noch leer ist, bevor die die Werte der Zeile zur Listbox-Auswahl hinzugefügt werden.
Ich hab mal versucht im Blindflug deine Makros anzupassen.
Gruß
Franz
Private Sub CommandButton3_Click()
Dim Found As Range
Dim FirstAddress As String
Dim Search As String
Dim Zeile As Long
Zeile = 0
Search = TextBox2
If Search = "" Then Exit Sub
Me.ListBox1.ColumnCount = 9
Me.ListBox1.ColumnWidths = "0;170;70;0;263;0;150;0;0"
With Sheets("Tabelle1").Range("A6:A65536")
Set Found = .Find(Search, LookIn:=xlValues, LookAt:=xlWhole)
TextBox2.Tag = ""
TextBox15 = ""
If Not Found Is Nothing Then
FirstAddress = Found.Address
Do
If IsEmpty(Found.Offset(0, 1)) Then 'Prüfen, ob Datum in Spalte B eingetragen
Me.ListBox1.AddItem Found.Row 'Wert steht in Spalte 0 der Listbox.List
Me.ListBox1.List(Zeile, 1) = Found.Offset(0, 1)
Me.ListBox1.List(Zeile, 2) = Found.Offset(0, 2)
Me.ListBox1.List(Zeile, 3) = Found.Offset(0, 3)
Me.ListBox1.List(Zeile, 4) = Found.Offset(0, 4)
Me.ListBox1.List(Zeile, 5) = Found.Offset(0, 5)
Me.ListBox1.List(Zeile, 6) = Found.Offset(0, 6)
Me.ListBox1.List(Zeile, 7) = Found.Offset(0, 7)
Me.ListBox1.List(Zeile, 8) = Found.Offset(0, 8)
Me.ListBox1.List(Zeile, 9) = Found.Offset(0, 9)
Zeile = Zeile + 1
End If
Set Found = .FindNext(Found)
Loop While Not Found Is Nothing And Found.Address  FirstAddress
If Zeile = 1 Then
Me.ListBox1.ListIndex = 0
Call ListBox1_Click
End If
Else
TextBox15.Text = "Keine fortlaufende Nummer gefunden"
ListBox1.Clear
End If
End With
End Sub
Private Sub ListBox1_Click()
Dim selected As Integer
selected = Me.ListBox1.ListIndex
Me.TextBox1 = Me.ListBox1.List(selected, 1)
Me.TextBox3 = Me.ListBox1.List(selected, 2)
Me.TextBox4 = Me.ListBox1.List(selected, 4)
Me.TextBox5 = Me.ListBox1.List(selected, 6)
Me.TextBox6 = Me.ListBox1.List(selected, 7)
Me.TextBox7 = Me.ListBox1.List(selected, 8)
TextBox2.Tag = Me.ListBox1.List(selected, 0) 'Zeilen-Nummer
End Sub
Sub irgendwas()
Dim manipulierte_Zeile As Integer
With Sheets("Tabelle1")
.Visible = True
.Select
.Unprotect
If TextBox2.Tag = "" Then Exit Sub
manipulierte_Zeile = CLng(TextBox2.Tag)
.Cells(manipulierte_Zeile, 2) = Format(TextBox1, "DD.MM.YYYY")
.Cells(manipulierte_Zeile, 3) = Format(TextBox3.Text)
.Cells(manipulierte_Zeile, 5) = Format(TextBox4.Text)
.Cells(manipulierte_Zeile, 7) = Format(TextBox5.Text)
.Cells(manipulierte_Zeile, 8) = Format(TextBox6.Text)
.Cells(manipulierte_Zeile, 9) = Format(TextBox7, "DD.MM.YYYY")
.Protect
.Visible = False
End With
TextBox2.Tag = ""
Unload Me 'nach Unload Me verlieren alle Steuerelemente des Userforms ihren Wert _
die folgenden Zeilen sind also überflüssig
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox5 = ""
TextBox6 = ""
TextBox7 = ""
With Me.ListBox1
If .ListIndex > -1 Then .RemoveItem (.ListIndex)
End With
UserForm7.Show
UserForm3.Hide
End Sub

Anzeige
AW: Probleme mit TextBox und ListBox
06.11.2015 22:16:01
Michael
Vielen Dank erst einmal, dass du dir die Mühe gemachst hast, dich meinem PROBLEM anzunehmen. Ich werde mich der Sache am Montag im Büro annehmen und dir gleich berichten.
Gruss Michael

AW: Probleme mit TextBox und ListBox
09.11.2015 07:53:44
Michael
Hallo Franz,
ich habe mir gerade deine tolle Umsetzung angeschaut und kann nur sagen.....der Hammer....superklasse....hast es einfach nur toll gemacht. Manchmal hab ich einfach ein Brett vor dem Kopf. Ich wäre froh, wenn ich so weit wäre wie du. Das mit dem Aufräumen, muss ich dir recht geben. Das wollte ich machen, wenn mein Programm pefekt funktioniert. Dank dir ist es jetzt endlich soweit.
Nochmals ein Lob an Dich
Gruss Michael
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige