Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
820to824
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
820to824
820to824
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Mit UserForm in Tabelle suchen
25.11.2006 08:57:25
Mister
Guten Morgen,
ich habe mit Hilfe dieses Forums eine UserForm erstellt womit man in eine Tabelle mit ca. 1000 Einträgen suchen kann. In ComboBox1 werden die Eingaben in Spalte A alphabetisch sortiert wiedergegeben. Doppelte Einträge werden bewusst nicht ausgefiltert. Durch klicken auf CommandButton1 wird die UF mit den entsprechenden Daten gefüllt. Hier mein Code:

Private Sub CommandButton1_Click()
On Error Resume Next
Dim i As Long
If ComboBox1.Value = "" Then
Text = "Wählen Sie eine Person aus!"
MsgBox Text, vbExclamation, "Schnellsuche"
Exit Sub
End If
For i = 6 To 550
If ComboBox1.Value = Sheets("Tabelle1").Cells(i, 3) & Format(", ") & Sheets("Tabelle1").Cells(i, 4) Then
TextBox2.Value = Sheets("Tabelle1").Cells(i, 5)
TextBox3.Value = Sheets("Tabelle1").Cells(i, 8)
TextBox5.Value = Sheets("Tabelle1").Cells(i, 6)
TextBox6.Value = Sheets("Tabelle1").Cells(i, 7)
TextBox7.Value = Sheets("Tabelle1").Cells(i, 9)
TextBox8.Value = Sheets("Tabelle1").Cells(i, 10)
End If
Next
End Sub

Die Suche an sich klappt reibungslos aber es kommt vor, dass eine Person mehrmals in der Tabelle vorkommt. Mit meinem Code bleibt Excel immer bei der ersten Übereinstimmung stehen und zeigt diese in die UF. Was muß ich machen damit Excel das zweite Vorkommen (oder dritte) einer Person auch in dieser Tabelle findet. Wenn z.B. der Name in ComboBox1 3x vorkommt und ich den zweiten dieser Namer auswähle, möchte ich das die dazugehörige Daten zu diesem zweiten Eintrag angezeigt werden. Ich hoffe ich habe mich verständlich ausgedruckt. Ich danke für eure Hilfe und wunsche ein schönes Wochenende!
Gruß
Mister B

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

Betreff
Datum
Anwender
Anzeige
AW: Mit UserForm in Tabelle suchen
25.11.2006 11:27:51
ramses
Hallo
wo wird sortiert ?
1. In der Tabelle und dann in die Combobox eingelesen
2. Unsortiert in der Tabelle und dann in der Combobox sortiert
Dann
2. Unmöglich
1. Auf diese Weise

Private Sub CommandButton1_Click()
On Error Resume Next
Dim i As Long
If ComboBox1.Value = "" Then
Text = "Wählen Sie eine Person aus!"
MsgBox Text, vbExclamation, "Schnellsuche"
Exit Sub
End If
TextBox2.Value = Sheets("Tabelle1").Cells(Me.ComboBox1.ListIndex + 7, 5)
TextBox3.Value = Sheets("Tabelle1").Cells(Me.ComboBox1.ListIndex + 7, 8)
TextBox5.Value = Sheets("Tabelle1").Cells(Me.ComboBox1.ListIndex + 7, 6)
TextBox6.Value = Sheets("Tabelle1").Cells(Me.ComboBox1.ListIndex + 7, 7)
TextBox7.Value = Sheets("Tabelle1").Cells(Me.ComboBox1.ListIndex + 7, 9)
TextBox8.Value = Sheets("Tabelle1").Cells(Me.ComboBox1.ListIndex + 7, 10)
End Sub

Gruss Rainer
Anzeige
@ Ramses & fcs
25.11.2006 12:34:29
Mister
Hallo Rainer!
Fall 1 traf zu. Dank deiner Hilfe funktioniert jetzt alles!
Hallo Franz!
Habe deinen Vorschlag aufgrund meines luckenhaften VBA-Wissens leider nicht umsetzten können.
Ich wunsche euch Beiden ein schönes Wochenende.
Gruß
Mister B
AW: Mit UserForm in Tabelle suchen
25.11.2006 11:35:23
fcs
Hallo Mister B,
dann muss du in deiner Tabelle in einer weiteren Spalte eine eindeuige Kennzeichnung eintragen (z.B fortlaufende Nummer) oder eine vorhandene Kennzeichnung mit nutzen.
Wenn du die Auswahl-Liste für die Kombobox mit den Namen, Vornamen erzeugst, dann hänge die eindeutige Kennzeichnung hinten am Vornamen an.
Jetzt muss du noch deine Suchroutine anpassen, so dass auch auf Übereinstimmung mit der Kennnummer geprüft wird.
Noch etwas eleganter könntest du das Ganze lösen, wenn du die Auswahlliste für dei Kombobox 2-spaltig aufbaust. Spalte 1: Name, Vorname; Spalte 2: Kennnummer. Als BoundColumn wird dann die Spalte 2 festgelegt. So kann man mit der Auswahl der Kombobox direkt auf die Kennnummer zugreifen und mit der Find-Methode oder auch per Tabellen-Funktionen VLookUp (SVERWEIS) oder Index+Lookup (INDEX und VERGLEICH) auf die Daten zum gesuchten Namen zugreifen. Diese Methoden sind auch deutlich schneller als die Suche per For-Next-Schleife
Gruss
Franz
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige