Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Textsuche / Vergleich
#11
Weil das ein Teil eines umfangreichen Formulares ist.
Es soll so funktionieren wie angegeben.
Wie ich das ganze händisch, oder per Filter im Tabellenblatt finde ist mir klar, aber das ist nicht das Ziel.
Antworten Top
#12
Dann bin ich wohl raus.
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Antworten Top
#13
Trotzdem vielen Dank.

Ich habe die Frage hier nun auch gestellt.
Antworten Top
#14
Hallo,

schau mal, ob das nicht die Richtung ist, in die Du gehen möchtest.

Ist nur ein Beispiel.


.xlsm   Erweiterte Suche über mehrere Tabellen Userform(ati).xlsm (Größe: 34,76 KB / Downloads: 6)
Gruß Atilla
Antworten Top
#15
Hallo, ich da mal in Deiner Datei Deine Form etwas verändert.

Schau mal ob Du damit weiter kommst.
Da ich kaum Fehlerabfragen eingebaut habe, kann es bei der einen oder anderen Aktion zu Fehlern kommen.
Die kann man dann je nach Bedienung eingrenzen und eliminieren.


.xlsm   SucheV3_in_Arbeit(ati).xlsm (Größe: 20,92 KB / Downloads: 5)
Gruß Atilla
Antworten Top
#16
@Atilla
Vielen Dank.

Ich versuche nun zu verstehen was du gemacht hast, wenn es nicht zu umfangreich wird, könntest du mir die Änderungen / Schritte bitte erklären?

Du hast das Tabellenblatt "Tabelle1" mit den Spalten A/ Ort, B/ Irgendwas1, C/ Info, D/ Katalog, E/ Irgendwas2, F/Irgendwas3, G/ Irgendwas4 in "Info" umbenannt,
dann hast du ein (leeres) Tabellenblatt "Katalog" erstellt.

Du hast ein Unterprogramm welches am Anfang die neu erstellte ListBox und die beiden Textboxen leert.

Code:
Private Sub ComboBox_Suchauswahl_Change()
Me.ListBox1.Clear
TextBox_Ergebnis_Ort.Text = ""
TextBox1 = ""
End Sub

Du hast meine Abfrage per Wenn / Dann nach dem "Suchort" (Spalte C/ Info oder Spalte D /Katalog) entfernt.

Du hast ein Unterprogramm welches am Ende den ausgewählten Text in der Listbox mit der dem im Tabellenblatt "Info" in der Spalte C /Info vergleicht und bei Übereinstimmung
die Zeile ermittelt und den entsprechenden Ort in der Zeile in der Spalte A/ Ort ausgibt.

Code:
Private Sub ListBox1_Click()
Dim x
x = Application.Match(ListBox1, Sheets(ComboBox_Suchauswahl.Text).Columns("C"), 0)
If IsNumeric(x) Then TextBox_Ergebnis_Ort.Text = Sheets(ComboBox_Suchauswahl.Text).Cells(x, 1).Value
End Sub


Was dieses Unterprogramm bewirkt ist mir unklar.

Code:
Private Sub TextBox1_Change()
If Len(TextBox1.Text) Then
   Dim bereich, wert
   Me.ListBox1.Clear
    bereich = Join(Application.Transpose(Sheets(ComboBox_Suchauswahl.Text).Columns("C").Value), "##")
    wert = Filter(Split(bereich, "##"), TextBox1)
    ListBox1.List = wert
   End If
End Sub

Ich habe dann etwas getestet und festgestellt, wähle ich in der Combobox_Suchauswahl "Katalog" aus, funktioniert die Suche nicht.
Ändere ich in den Unterprogrammen der ListBox1 und TextBox1 jeweils Columns von "C" auf "D", dann wird die Spalte D/ Katalog durchsucht, bei "C" die Spalte C/ Info.

Das bedeutet die Auswahl der Combobox_Suchauswahl muss immer auf "Info" stehen und der Suchbereich wird über die Einstellung Columns geändert.

Ist das so richtig?
Ich versuche zu reproduzieren was die einzelnen Code- Zeilen bedeuten.

LG Jana
Antworten Top
#17
Hallo Jana,

ich habe das Gefühl, dass Du selber mit Deinem Projekt etwas überfordert bist.
Es sieht für mich so aus, als ob Du eine Baustelle anfängst und wenn es dort Probleme gibt, dann machst Du eine neue baustelle auf.

Du kommst schneller zum Ziel, wenn Du beharrlich ein Problem zu Ende führst.

Was ich gemacht habe, habe aus Deinen Beschreibungen und den texten auf der Userform abgeleitet.
Da steht bei der ComboBox_Suchauswahl, dass man zwischen zwei Tabellenblättern wählen können sollte.
Da es aber in Deiner Datei die in der Combobox aufgeführten Tabellen nicht gab, habe ich sie halt eingefügt, um zu sehen, wie und ob der Code funktioniert.

Da das Tabellenblatt Katalog keine Daten hat, bringt die Suche keine Ergebnisse.
In beiden Tabellenblättern wird in Spalte C die Eingabe gesucht, welche in die neu von mir eingefügte Textbox gemacht wird.
Bei Fund werden alle Fundergebnisse in der darunterliegende Listbox gelistet.

Und wenn man nun in der Listbox auf einen Eintrag klickt, wird aus der Tabelle der wert aus spalte A, an dieser Fundstelle zurückgegeben, und in die unterste Textbox geschrieben.

Das wolltest Du, meiner Meinung nach erreichen.
Wenn nicht, musst Du aussagekräftigere Beispiele bringen und detailt beschreiben, was Du möchtest.
Beim Verstehen Deines Problems sind wir Laien, deswegen musst Du uns da unterstützen.

diese Zeilen:

Code:
Private Sub TextBox1_Change()
If Len(TextBox1.Text) Then
   Dim bereich, wert
'   Me.ListBox1.Clear
'    bereich = Join(Application.Transpose(Sheets(ComboBox_Suchauswahl.Text).Columns("C").Value), "##")
'    wert = Filter(Split(bereich, "##"), TextBox1)
    ListBox1.List = Filter(Application.Transpose(Sheets(ComboBox_Suchauswahl.Text).Columns("C").Value), TextBox1)
   End If
End Sub

können mit diesen ersetzt werden:

Code:
Private Sub TextBox1_Change()
If Len(TextBox1.Text) Then
    ListBox1.List = Filter(Application.Transpose(Sheets(ComboBox_Suchauswahl.Text).Columns("C").Value), TextBox1)
   End If
End Sub
Warum, kannst Du in Deinem anderen Thema nachlesen. (Danke noch ein mal an Ralf)
Antworten Top
#18
Lieber Attila,
ich entschuldige mich, wenn ich mich falsch ausgedrückt habe.

Ursprünglich sollte die ComboBox_Suchauswahl den Suchbereich auswählen.
Entweder Tabelle "Info" (nicht Tabellenblatt!), also die Spalte "C", oder die Tabelle "Katalog" (nicht Tabellenblatt!), also die Spalte "D".
Die Spalte "C" wurde als Tabelle "Info" definiert, die Spalte "D" als Tabelle "Katalog" (wobei "Info" und "Katalog" auch die Überschriften der Spalten sind).

Das bedeutet, ist in der ComboBox_Suchauswahl der Text "Info" - ist der Suchbereich die Spalte "C",
enthält die ComboBox_Suchauswahl den Text "Katalog" - ist der Suchbereich die Spalte "D".
Beide Spalten befinden sich auf dem selben Tabellenblatt.

LG Jana
Antworten Top
#19
Hallo Jana,

ok, das war mein Fehler, schlecht gelesen und schlecht geguckt.

Dann lösch alles Code hinter Userform und teste folgenden:

Code:
Private Sub ComboBox_Suchauswahl_Change()
TextBox_Ergebnis_Ort.Text = ""
   If Len(TextBox1.Text) Then
      ListBox1.List = Filter(Application.Transpose(ActiveSheet.ListObjects("DB_1").ListColumns(ComboBox_Suchauswahl.Text).Range), TextBox1)
   End If
End Sub

Private Sub ListBox1_Click()
Dim x
x = Application.Match(ListBox1, Sheets(ComboBox_Suchauswahl.Text).Columns(3), 0)
If IsNumeric(x) Then TextBox_Ergebnis_Ort.Text = Sheets(ComboBox_Suchauswahl.Text).Cells(x, 1).Value
End Sub

Private Sub TextBox1_Change()
   If Len(TextBox1.Text) Then
      ListBox1.List = Filter(Application.Transpose(ActiveSheet.ListObjects("DB_1").ListColumns(ComboBox_Suchauswahl.Text).Range), TextBox1)
   End If
End Sub

Private Sub UserForm_Initialize()
With ComboBox_Suchauswahl
   .AddItem "Info"
   .AddItem "Katalog"
End With
End Sub
Gruß Atilla
Antworten Top
#20
Danke Atilla - ein Schritt weiter.
Es fehlt jetzt nur noch, dass bei Suchauswahl "Katalog" und ausgewählten Text in der ListBox das Suchergebnis Ort eingetragen wird.
Bei der Suchauswahl "Info" funktioniert es.

LG Jana
Antworten Top


Gehe zu:


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