Suchfunktion / Auswahlfunktion mit "Zeilenmerker"
#1
Hallo Zusammen, 

ich habe mit drei Userforms eine Datenbank aufgebaut und habe bereits eine Suchfunktion "Suchmaske"integriert, die an sich funktioniert. Die Ergebnisse werden in einer Listbox angezeigt und dann kann ausgewählt werden. Leider stehen in der Datenbank über 50 Spalten zur Verfügung, die ich nach der Auswahl in ein neues Userform "Änderungsmaske" übernehmen möchte. Die Listbox ist begrenzt auf zehn... 
Kann ich ggf. die Suchfunktion erweitern, um mir die Zeile anzeigen zulassen, auf die ich nach der Auswahl aus der Ergebnisliste wieder zugreifen kann, um dann wieder die ganzen Spalteninhalte zu übernehmen?  

Leider ist das Hochladen von Dateien von diesem Rechner gesperrt, also hier ein Auszug meiner Suchfunktion: 

Sub suchen_Person()
Dim lng As Long
Dim i As Integer

i = 0
ListBox1.Clear
Sheets("DB").Activate

 If TextBox_Name.Value = "" Then
   
    
   suchen_vorname
    
    Else

For lng = 2 To ActiveSheet.UsedRange.Rows.Count + 1
If InStr(LCase(Cells(lng, 1).Value), LCase(TextBox_Name.Value)) > 0 Then    'sucht in der 1.Spalte
  ListBox1.AddItem Cells(lng, 1).Value                                      ' sucht in der 1. Spalte
  ListBox1.Column(1, i) = Cells(lng, 1).Value
  ListBox1.Column(2, i) = Cells(lng, 2).Value
  ListBox1.Column(3, i) = Cells(lng, 3).Value
  ListBox1.Column(4, i) = Cells(lng, 4).Value
  ListBox1.Column(5, i) = Cells(lng, 5).Value
  ListBox1.Column(6, i) = Cells(lng, 6).Value
  ListBox1.Column(7, i) = Cells(lng, 7).Value
  ListBox1.Column(8, i) = Cells(lng, 8).Value
  ListBox1.Column(9, i) = Cells(lng, 9).Value

 
  

  i = i + 1
 
 Else
 End If
Next lng

End If
End Sub

Die Auswahl der Ergebnisliste, habe ich wie folgt gelöst (allerdings nur beschränkt möglich):

Private Sub ListBox1_Click()



TextBox2 = ListBox1.List(ListBox1.ListIndex, 3)
TextBox3 = ListBox1.List(ListBox1.ListIndex, 2)
TextBox4 = ListBox1.List(ListBox1.ListIndex, 1)

KopieErstellen 'Versuch der Zwischenspeicherung

End Sub 

Übernahme der Daten in die "Änderungsmaske":

Private Sub UserForm_Initialize()

 UserForm2.TextBox_B_Nummer = UserForm3.TextBox2.Text
 UserForm2.TextBox_Name = UserForm3.TextBox4.Text
 UserForm2.TextBox_Vorname = UserForm3.TextBox3.Text


End Sub

Für Hilfe jeglicher Art, auch Vorschläge zu anderen Lösungsansätzen wäre ich dankbar.
Antworten Top
#2
Hallo,

Zitat:Die Listbox ist begrenzt auf zehn... 
das kann man so pauschal nicht sagen, kommt darauf an, mit welcher Methode sie gefüllt wird. Guckst du unter Daten mit Array einlesen, da werden zwei mögliche Wege beschrieben, mehr als 10 Spalten einzulesen.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
[-] Folgende(r) 1 Nutzer sagt Danke an Klaus-Dieter für diesen Beitrag:
  • Kuwer
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste