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

Suchmaske in Excel

Suchmaske in Excel
05.07.2019 13:24:48
Julius
Hallo zusammen,
ich hätte kurz eine Frage.
Die Suchmaske aus dem Beitrag...
https://www.herber.de/bbs/user/99306.xlsm
ist schon mal super genial. Ich würde gerne das die daraus gefundenen Werte nicht in der Tabelle Fokusiert sondern in eine Variable "Zeile" geschrieben werden. Diese möchte ich dann in einem Userform anzeigen. Aktuell habe ich eine kleine Suchfunktion mit der ich nach Zahlen suche und das Ergebnis aus der Zeile in eine Userform schreibe.
Private Sub CommandButton1_Click()
Dim X As Long
Z = Sheets(1).UsedRange.Rows.Count 'Letzt genutzte Zeile ermitteln
X = TextBox1 'Suchfeld auslesen
temp = 0
For i = 5 To Z 'In Zeile 5 starten bis Letzt genutzte Zeile
If Cells(i, 1) = X Then
temp = 1
Exit For
End If
Next
If temp = 1 Then
Unload Me
zeile = i 'Ergebnis in Variable schreiben (wird in UserForm1 übergeben)
UserForm1.Show
Else
MsgBox "Kundennummer nicht vorhanden!", vbExclamation
TextBox1 = ""
End If
End Sub
Nice wäre, wenn ich das erstgenannte Suchformular irgendwie mit nutzen kann. So das ich das Ergebnis wieder in die Globale Variable "Zeile" schreibe.
Ich würde mich super über ein paar Ideen und Vorschläge freuen :)
Vielen Dank

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchmaske in Excel
06.07.2019 15:55:54
Julius
Hallo onur,
danke für deine schnelle Info und den super Code.
Theoretisch müsste ich ja nur noch wie in meinem alten code das Suchfenster schließen und die neue Userform öffnen.
so dachte ich:
rivate

Sub lstResult_Click()
On Error Resume Next
With lstResult
Unload Me
UserForm1.Show
End With
txtSearch.SetFocus
End Sub
Zu früh gedacht :D
Er gibt mir eine Meldung aus "Typen Unverträglich" wenn er im sich öffnenden Userform die Daten übergeben möchte, hört er bei der ersten Zelle auf.
Private

Sub UserForm_Initialize()
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False
End With
TextBoxKundenNummer = Cells(Zeile, 1) 'Hier bricht er ab
Muss ich denn die Dateitypen irgendwie separat konvertieren für jeden Feld welches ich befüllen  _
möchte?
Danke :)

Anzeige
AW: Suchmaske in Excel
06.07.2019 16:11:22
onur
Zeile ist doch ein ARRAY - Da musst du schon eine Listbox nehmen, um alle Elemente zu zeigen.
AW: Suchmaske in Excel
06.07.2019 16:36:08
Julius
Achso, ich dachte ich kann es wie vorher machen und die Daten aus der Zeile, Zelle für Zelle auslesen und dann auf die entsprechenden Bereiche wie Checkoxen, Comboboxen oder Textfelder übertragen? Das wird dann so wie ich es mir denke wohl gar nicht funktionieren? Ich habe einmal meine Datei hochgeladen und soweit alles raus gelöscht was Datenschutztechnisch relevant ist. Du musst die Datei nur mal umbenennen in *xlsm (er ließ sie mich nicht hochladen, daher in html geändert) ^^
https://www.herber.de/bbs/user/130761.html
Vielleicht sieht man da besser was ich genau machen möchte ^^
Anzeige
AW: Suchmaske in Excel
06.07.2019 16:39:19
onur
Was hat denn diese Datei mit deiner Beispielsdatei zu tun?
AW: Suchmaske in Excel
06.07.2019 17:01:17
Julius
Schau mal rein, ich habe wie gesagt ein Suchfeld, das nach einer Nummer in der Spalte A ab Zeile 5 beginnt mit suchen. Da es ja auch Kundennamen gibt würde ich auch gerne nach Kundennamen suchen wollen. Daher wollte ich die Suche aus der Beispieldatei aus diesem Forum übernehmen. Da sie ja Suchvorschläge schon zeigt, während der Eingabe. Und an Stelle mit einen Klick auf "Suchen" wollte ich das Ergebnis aus dem Livefeld an das UserForm1 übergeben und dort alle Daten aus der Zeile anzeigen, wo er das Ergebnis gefunden hat. (ich hoffe man kann mir folgen ^^).
Du musst die Datei 130761.html in 130761.xlsm umbennen. Der File-Upload lies mich keine xlsm hoch laden.
Anzeige
AW: Suchmaske in Excel
06.07.2019 17:05:09
onur
Du kannst nicht einfach ein Makro von irgendwoher übernehmen und hoffen, dass sie auch in deiner Datei funktioniert. Jedes Makro ist wie ein Maßanzug - sie passt nur zu diesem einen Problem und mit diesem einen Blatt.
Damit man sie woanders benutzen kann, ist es mind. nötig, sie umzuschreiben - wenn nicht sogar komplett neu zu schreiben.
AW: Suchmaske in Excel
06.07.2019 17:07:10
Julius
Da hast du natürlich recht, ich hab mir das irgendwie zu einfach vorgestellt. :D
Danke dir aber für deine Mühe :)
AW: Suchmaske in Excel
06.07.2019 17:13:53
onur
Ich würde dir ja gerne weiterhelfen, aber:
1) Du hast viel zu wenig Fake-Datensätze in der Datei zum testen.
2) Ich sehe nirgendwo ein Button, um die Suchmaske zu starten.
3) Du solltest nur EINE Userform benutzen (praktisch die erste mit der Zweiten kombinieren- also die Suchmaske und die Listbox in die Zweite integrieren.
4) Du musst dir darüber im Klaren sein, dass die Suche meistens mehrere Einträge findet und dass man diese nicht in EINE Textbox qutschen kann - deswegen müsste man auf der Listbox den gewünschten Eintrag anklicken und dadurch diese Felder füllen.
Anzeige
AW: Suchmaske in Excel
06.07.2019 17:38:06
Julius
Danke für die Infos.
zu 1) Meine Liste hat über 1000 Einträge. Nur sind das Kundendaten die ich jetzt nicht online stellen wollte. Die zwei Fake Sachen waren nur zur Veranschaulichung. :)
zu 2) Den Button kann man ja fix anlegen, die Voraussetzungen sind ja da. Ich habe Bisher nur über F5 aus dem VBA Code direkt getestet, da ich damit noch nicht Live arbeite.
zu 2) Das ist der Plan. Eine Suchbox für eine "neue Suche" ist ja schon da. Ich wollte entweder über die große Textbox ein "Suchergebnis" einbauen oder in einem Separaten Reiter.
zu 4) Genau das möchte ich ja. Der Gedanke dahinter ist, das ich zb die Kundennummer nicht kenne aber in Etwa weis wie der Kunde heißt oder wann ich ihn angelegt habe. Wenn ich zb 12 Kunden am 01.01.2019 angelegt habe, dann habe ich die Übersicht und kann mir genau den Raus picken den ich möchte. Dabei soll das Ergebnis der Suche weiter vorgehalten werden, damit ich ggf die Einträge durch klicken kann.
So ist der Plan :D
Anzeige
AW: Suchmaske in Excel
06.07.2019 17:39:43
onur
Dan erledige die 4 Punkte und wir sehen weiter.
ICH mache das bestimmt nicht für dich.
AW: Suchmaske in Excel
06.07.2019 20:17:43
Julius
:D Das habe ich weder gesagt noch habe ich das erwartet. :)
AW: Suchmaske in Excel
06.07.2019 20:31:34
onur
Ich habe den letzten Satz nur geschrieben, weil ich dir bereits die Punkte genannt hatte und eigentlich erwartete, dass du die neue Datei mit den Änderungen postest, aber stattdessen nur Sprüche kamen wie: "Den Button kann man ja fix anlegen", "Genau das möchte ich ja" oder "Das ist der Plan".
AW: Suchmaske in Excel
06.07.2019 20:41:40
Julius
Ist doch alles gut. Ich wollte nur kurz umreißen was ich vor habe und habe gehofft das es zum allgemeinen Verständnis beiträgt, da man in der Regel immer ließt, dass man mehr Infos geben soll. An der Datei bin ich dran. Noch Mals, Vielen dank für deine Zeit ;)
Anzeige
AW: Suchmaske in Excel
06.07.2019 20:45:29
onur
Kein Problem.
Wie gesagt, erweitere die Userform um das Suchfeld und die Listbox, füge das Button auf der Tabelle hinzu - das reicht.
AW: Suchmaske in Excel
08.07.2019 15:13:38
Stephan
Hallo onur,
ich habe nun versucht entsprechend den Angaben die Userform bzw die Datei anzupassen.
Es gibt nun nur noch eine UserForm, die man über einen Button aus der Excel "leer" öffnen kann. Es findet keine Suche vorab mehr statt. Noch ist die "Neue Suche" eingebaut, soll aber durch besagte "Kunden Suche" ersetzt werden. Excel habe ich mit 200 Fake Daten gefüttert. Alles was noch an Userformen vorhanden war habe ich raus geschmissen. Ich würde nun halt gerne es so machen, das ich in dem Textfeld Livesuche einen Eintrag tätige und er mir entsprechendes darunter vorschlägt.
Wäre cool, wenn du mir einen Tipp gibst, wie ich am besten anfange. :) Vorab vielen Dank
https://www.herber.de/bbs/user/130784.xlsm
Anzeige
AW: Suchmaske in Excel
08.07.2019 22:05:09
Julius
Hey du bist ja klasse :) Vielen Dank
Ich habe ihn noch so angepasst.
Private Sub SuchText_Change()
Dim z, Nam
zl = Sheets(1).UsedRange.Rows.Count
FoundList.Clear
With Sheets(1)
For z = 5 To zl
Nam = .Cells(z, 2).Text
If Nam  "" Then
If InStr(1, Nam, SuchText, 1) > 0 Then
FoundList.AddItem Cells(z, 1)
FoundList.List(FoundList.ListCount - 1, 1) = Cells(z, 2)
End If
End If
Next z
End With
End Sub
su = SuchText habe ich ebenfalls raus genommen, da die Variable su ja nicht mehr vorhanden ist. Hier wusste ich nicht, warum du den SuchText in die Variable schreibst, wenn mit der gar nicht gearbeitet wird.
zl = Sheets(1).UsedRange.Rows.Count ich nehme das Ergebnis der letzten beschriebenen Zeile, damit die Listbox schneller ist. Zumindest am Anfang, wenn dann hier mehr als 1000 Zeichen drin sind, wird es eh wieder langsam.
With Sheets(1) Habe ich mal abgeändert, da ich mich gefragt habe, was passiert wenn das Tabellenblatt mal umbenannt wird.
lz und su hab ich raus genommen, da wusste ich nicht wozu die deklariert wurden
Die Checkbox für die Livesuche habe ich dann doch raus geschmissen.
Wenn ich jetzt nach einer Kundennummer suchen möchte, müsste ich die Schleife gleich schreiben, nur das ich eine Variable zb Kud nutze (Kud = .Cells(z, 1).Text) und dann die Spalte 1 anspreche (InStr(1, Kud, SuchText, 1). Würde das als If Else funktionieren? Oder gibt es noch eine andere Fuktion zum vergleichen verschiedener Werte? Die InStr-Funktion vergleicht ja nur den Wert aus dem Textfeld mit dem was er in Zelle 5/2 gefunden hat.
Noch einmal vielen Dank für deine Hilfe. Das hat mir verdammt weiter geholfen, vor allen in Bezug auf die Benutzung einer Listbox. Vielen vielen Dank :)
Anzeige
AW: Suchmaske in Excel
08.07.2019 22:31:33
onur
Hast recht, lz und su sind Reste aus der Testphase und können weg.
Das mit langsamer ist Ansichtsache, bei mir überprüft der Code 10.000 Zeilen in 0,23 sec, das ist nicht der Rede Wert.
Kundennummer ist so eine Sache, mit Instr kommt, wenn du eine 1 eingibst, nicht nur alles, was mit 1 anfängt, sondern auch 100001,200001, ......, und alles, wo eine irgendwo 1 drin steckt.
Es wäre besser, wenn du den Anfang (also von rechts) überprüfst.

if len(suchtext)>8 then suchtext=left(suchtext,8)' Damit bei 9-stelligen Zahlen keine  _
Fehlermeldung kommt
if left(kud,len(suchtext))=suchtext then
FoundList.AddItem.......

Anzeige
AW: Suchmaske in Excel
09.07.2019 11:43:40
Julius
Ach cool. Danke für den Tipp, da habe ich gar nicht dran gedacht. Dann versuche ich das mal umzusetzen. vielen Dank
AW: Suchmaske in Excel
09.07.2019 15:05:48
Julius
Okay, scheint zu Funktionieren :)
Private Sub SuchText_Change()
Dim z, Nam, Kud
zl = Sheets(1).UsedRange.Rows.Count
FoundList.Clear
With Sheets(1)
For z = 5 To zl
Nam = .Cells(z, 2).Text
Kud = .Cells(z, 1).Text
If Nam  "" Then
If InStr(1, Nam, SuchText, 1) > 0 Then
FoundList.AddItem Cells(z, 1)
FoundList.List(FoundList.ListCount - 1, 1) = Cells(z, 2)
End If
If Kud  "" Then
If Len(SuchText) > 8 Then SuchText = Left(SuchText, 8) ' Damit bei 9-stelligen  _
Zahlen keine Fehlermeldung kommt
If Left(Kud, Len(SuchText)) = SuchText Then
FoundList.AddItem Cells(z, 1)
FoundList.List(FoundList.ListCount - 1, 1) = Cells(z, 2)
End If
End If
End If
Next z
End With
End Sub
Falls dir noch ein Fehler auffällt, sag Bescheid. :)
Vielen lieben Dank noch einmal.
AW: Suchmaske in Excel
09.07.2019 20:46:18
onur
Besser so:
Private Sub SuchText_Change()
Dim z, Nam, su, KdNr
FoundList.Clear
With Sheets("Aktiv")
For z = 5 To 10000
Nam = .Cells(z, 2).Text
KdNr = .Cells(z, 1).Text
su = SuchText
If su = "" Then Exit Sub
If Len(su) > 8 Then su = Left(su, 8) ' Damit bei 9-stelligen _
Zahlen keine Fehlermeldung kommt
If Nam  "" Then
If InStr(1, Nam, su, 1) > 0 Or Left(KdNr, Len(su)) = su Then
FoundList.AddItem Cells(z, 1)
FoundList.List(FoundList.ListCount - 1, 1) = Cells(z, 2)
End If
End If
Next z
End With
End Sub

AW: Suchmaske in Excel
09.07.2019 17:42:15
Peter
Hallo Martin,
besten Dank. Ich kann aber aus diesem Code nicht herauslesen, dass das mit einem Teilstring funktioniert.
Oder kannst Du mir erklären woraus sich dies ergibt.
Gruss
Peter

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige