Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Suchen per Eingabemaske

Suchen per Eingabemaske
06.02.2017 14:56:00
Michelle
Hallo Excel-Freunde!
Vielleicht ist ja ein Profi unter Euch, der mir bei folgender Problemstellung helfen kann:
Blatt 1, Spalte B: Mehr als 1.000 Einträge über Produkte inkl. Nr.
z. B. Besteck 123,
Tasse 456,
Unterteller 444,
Suppenteller 333,
Großer Teller 982,
Kleiner Teller 456,
Kuchenteller 976 etc
Blatt 2, Zelle G3: momentan eine Dropdown Liste mit allen Einträgen
Die Dropdown-Liste ist hierfür nicht so gut geeignet. Ich hätte gerne eine andere Lösung, undzwar folgende:
1. Ich klicke auf Button oder in Zelle etc
2. Es öffnet sich eine Eingabemaske
3. In dieser Maske kann ich dann suchen, nach z. B. "Tel" oder auch nach "6"
4. Es werden mir alle Ergebnisse angezeigt, die irgendwo "Tel" in der Zelle haben, es müssen nicht die Anfangsbuchstaben sein
5. Ich klicke auf ein Ergebnis, das ich haben möchte und dieses erscheint dann in der Zelle G 3
Ist so etwas überhaupt umsetzbar? Würde mich sehr freuen, wenn mir jemand helfen kann!!
Ganz viele Grüße
Michelle
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchen per Eingabemaske
06.02.2017 16:33:23
Fennek
Hallo,
mal ein ganz anderer Ansatz:
Autofilter bietet die Möglichkeit nach "enthält ... "Tell"" zu suchen bzw zu filtern.
mfg
Nicht zielführend, andere Möglichkeit?
06.02.2017 17:35:12
Michelle
Hallo Fennek,
Danke für Deine Antwort! Leider ist das keine Lösung aus folgenden zwei Gründen
- Die Basisdaten sind in Blatt 1, ich hätte aber gerne das Gesuchte in Blatt 2
- Außerdem brauche ich den Zellbezug zu G3, Blatt 2 weil hintendran weitere Sverweise etc. eingebunden sind.
Gibt es eine passende Möglichkeit, so wie ich sie beschrieben habe? Oder eine andere zielführende Möglichkeit?
Viele Grüße :)
Anzeige
AW: Nicht zielführend, andere Möglichkeit?
06.02.2017 18:02:10
Crazy
Hallo
meinst du so?
ggf. die Tabellenblattnamen ändern
in meinem Test gibt es eine Userform1 mit einer Textbox1
und einer Listbox1
Private Sub ListBox1_Click()
Sheets("Tabelle2").Range("G3") = ListBox1.Value
End Sub
Private Sub TextBox1_Change()
Dim c As Range
Dim strSuche As String
Dim strErste As String
ListBox1.Clear
strSuche = TextBox1.Text
With Sheets("Tabelle1") 'Tabellenname anpassen
Set c = .Columns(2).Find(strSuche, LookIn:=xlValues, lookat:=xlPart)
If Not c Is Nothing Then
strErste = c.Address
Do
ListBox1.AddItem .Cells(c.Row, 2).Text
Set c = .Columns(2).FindNext(c)
Loop While Not c Is Nothing And c.Address  strErste
End If
End With
End Sub
beim schreiben in Txtbox1 werden dir jeweils die Ergebnisse in der Listbox angezeigt
bei klick auf einen Eintrag in der Listbox wird der Text in die Zelle G3 auf Tabelle2 eingetragen
MfG Tom
Anzeige
AW: Suchen per Eingabemaske
08.02.2017 20:41:18
Piet
Hallo Michelle,
hier noch eine Lösung über InputBox, in der du 1 Suchbegriff eingeben kannst, oder durch Komma getrennt 2 Begriffe. Eine nachfolgende MsgBox zeigt dir alle Daten die in Spalte 1 gefunden werden. Cancel dient zum Abbruch, bei Nein wird weiter gesucht, bei "Ja" wird der Wert in Tabelle2 Zelle G3 übernommen.
mfg Piet

Sub Suchen_per_InputBox()
Dim rFind As Object, Wert As String
Dim SuchTxt As String, Txt2 As String
'Wert suchen, 2. Wert durch Komma trennen
Wert = InputBox("Suche in Tabelle1 nach:" & Chr(10) & "Teiltext durch Komma trennen")
If Wert = Empty Then Exit Sub
With Sheets("Tabelle1")
SuchTxt = Wert  'Such Text prüfen, String zerlegen
If InStr(Wert, ",") Then
SuchTxt = Trim(Left(Wert, InStr(Wert, ",") - 1))
Txt2 = Trim(Right(Wert, Len(Wert) - InStr(Wert, ",") - 1))
End If
'Suchlauf nach 1.Wert (Such Text)
Set rFind = .Columns(2).Find(What:=SuchTxt, LookIn:=xlValues, LookAt:=xlPart)
'wenn gefunden mit MsgBox weitersuchen
If Not rFind Is Nothing Then
Adr1 = rFind.Address
Do 'mit MsgBox anzeigen und abfragen, bei Ja übernehmen
If Txt2 = Empty Or Txt2  "" And InStr(rFind, Txt2) Then
ok = MsgBox(.Cells(rFind.Row, 2), vbYesNoCancel)
If ok = vbCancel Then Exit Sub
If ok = vbYes Then   'İn Tabelle2 einfügen
Sheets("Tabelle2").Range("G3") = rFind.Value
Exit Sub
End If
End If
Set rFind = .Columns(2).FindNext(rFind)
Loop Until rFind Is Nothing Or rFind.Address = Adr1
End If
End With
End Sub

Anzeige
AW: Suchen per Eingabemaske
08.02.2017 21:04:24
Piet
Hallo Michelle,
ich weiss nicht ob ich beim Senden einen Fehler gemacht habe, sehe meinen Code nicht. Hier noch mal eine Lösung über InputBox. Du kannst einen 2. Suchbegriff mit eingeben, dann durch Komma trennen. Eine MsgBox zeigt dir alle gefunden Daten aus Tabelle1 an. Abbruch mit Cancel, beiNein wird weitergesucht, bei Ja wird der Wert in Tabelle2 Zelle G3 übernommen.
msg Piet
'Thread:  Suchen per Eingabemaske
Sub Suchen_per_InputBox()
Dim rFind As Object, Wert As String
Dim SuchTxt As String, Txt2 As String
'Wert suchen, 2. Wert durch Komma trennen
Wert = InputBox("Suche in Tabelle1 nach:" & Chr(10) & "Teiltext durch Komma trennen")
If Wert = Empty Then Exit Sub
With Sheets("Tabelle1")
SuchTxt = Wert  'Such Text prüfen, String zerlegen
If InStr(Wert, ",") Then
SuchTxt = Trim(Left(Wert, InStr(Wert, ",") - 1))
Txt2 = Trim(Right(Wert, Len(Wert) - InStr(Wert, ",") - 1))
End If
'Suchlauf nach 1.Wert (Such Text)
Set rFind = .Columns(2).Find(What:=SuchTxt, LookIn:=xlValues, LookAt:=xlPart)
'wenn gefunden mit MsgBox weitersuchen
If Not rFind Is Nothing Then
Adr1 = rFind.Address
Do 'mit MsgBox anzeigen und abfragen, bei Ja übernehmen
If Txt2 = Empty Or Txt2  "" And InStr(rFind, Txt2) Then
ok = MsgBox(.Cells(rFind.Row, 2), vbYesNoCancel)
If ok = vbCancel Then Exit Sub
If ok = vbYes Then   'İn Tabelle2 einfügen
Sheets("Tabelle2").Range("G3") = rFind.Value
Exit Sub
End If
End If
Set rFind = .Columns(2).FindNext(rFind)
Loop Until rFind Is Nothing Or rFind.Address = Adr1
End If
End With
End Sub

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Suchen per Eingabemaske in Excel


Schritt-für-Schritt-Anleitung

Um eine Eingabemaske in Excel zu erstellen, die das Suchen von Einträgen ermöglicht, kannst Du VBA (Visual Basic for Applications) verwenden. Folgendes Vorgehen ist notwendig:

  1. Öffne Excel und gehe auf die Registerkarte "Entwicklertools". Falls diese nicht sichtbar ist, aktiviere sie in den Excel-Optionen.
  2. Klicke auf "Visual Basic", um den VBA-Editor zu öffnen.
  3. Erstelle ein neues UserForm:
    • Rechtsklick im Projektfenster auf "VBAProject (DeineDatei.xlsx)".
    • Wähle "Einfügen" > "UserForm".
  4. Füge eine TextBox (Textbox1) und eine ListBox (ListBox1) auf das UserForm ein.
  5. Füge einen Button hinzu, um die Suche auszulösen.
  6. Verwende den folgenden VBA-Code im UserForm:
Private Sub ListBox1_Click()
    Sheets("Tabelle2").Range("G3") = ListBox1.Value
End Sub

Private Sub TextBox1_Change()
    Dim c As Range
    Dim strSuche As String
    ListBox1.Clear
    strSuche = TextBox1.Text
    With Sheets("Tabelle1")
        Set c = .Columns(2).Find(strSuche, LookIn:=xlValues, lookat:=xlPart)
        If Not c Is Nothing Then
            Do
                ListBox1.AddItem .Cells(c.Row, 2).Text
                Set c = .Columns(2).FindNext(c)
            Loop While Not c Is Nothing
        End If
    End With
End Sub
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Füge einen Button auf deinem Blatt hinzu, um die Eingabemaske zu öffnen:
    • Verwende den folgenden Code, um das UserForm anzuzeigen:
Sub ShowUserForm()
    UserForm1.Show
End Sub
  1. Weise den Button der Subroutine ShowUserForm zu.

Jetzt kannst Du die Excel Maske anpassen, um die gewünschten Daten zu suchen!


Häufige Fehler und Lösungen

  1. Problem: Die ListBox bleibt leer.

    • Lösung: Stelle sicher, dass der Text in der TextBox richtig eingegeben wird und dass die Daten in der entsprechenden Spalte existieren.
  2. Problem: Der Button zeigt das UserForm nicht an.

    • Lösung: Überprüfe, ob der Button korrekt mit der Subroutine ShowUserForm verknüpft ist.
  3. Problem: Falsche Zelle wird gefüllt.

    • Lösung: Kontrolliere den Zellbezug in der ListBox1_Click-Subroutine. Möglicherweise ist die Zelle G3 nicht richtig referenziert.

Alternative Methoden

Falls Du keine VBA-Lösungen verwenden möchtest, kannst Du auch die Excel Maske mit Dropdown in Betracht ziehen. Diese Methode ist jedoch in der Funktionalität eingeschränkt, da die Dropdown-Liste bei großen Datenmengen unübersichtlich wird.

Ein einfacherer Ansatz könnte auch die Verwendung des Autofilters sein, um nach bestimmten Kriterien zu filtern. Dies ist jedoch weniger benutzerfreundlich als eine Eingabemaske.


Praktische Beispiele

Hier sind einige Anwendungsbeispiele, wie Du die Excel Eingabemaske mit Dropdown nutzen kannst:

  1. Suchbegriff: "Teller"

    • Die Eingabemaske zeigt alle Einträge an, die "Teller" enthalten. Du kannst dann den gewünschten Eintrag auswählen.
  2. Suchbegriff: "123"

    • Die Maske filtert alle Produkte, die "123" im Namen oder der Nummer haben.

Diese Beispiele zeigen die Flexibilität der Eingabemaske bei der Produktsuche.


Tipps für Profis

  • Datenvalidierung: Verwende Datenvalidierung, um sicherzustellen, dass nur gültige Einträge in die TextBox eingegeben werden.
  • Design: Optimiere das Design des UserForms für eine bessere Benutzererfahrung.
  • Verschiedene Suchkriterien: Erweitere die Eingabemaske, um mehrere Suchkriterien gleichzeitig zu berücksichtigen, indem Du zusätzliche TextBoxen hinzufügst.

FAQ: Häufige Fragen

1. Frage
Kann ich die Eingabemaske auch für andere Excel-Versionen verwenden?
Antwort: Ja, die oben genannten Schritte funktionieren in den meisten modernen Excel-Versionen, die VBA unterstützen.

2. Frage
Wie kann ich die Eingabemaske anpassen?
Antwort: Du kannst die Steuerelemente im UserForm anpassen, indem Du zusätzliche TextBoxen, Labels oder Buttons hinzufügst und deren Eigenschaften änderst.

3. Frage
Ist es möglich, die Suche auf mehrere Spalten auszuweiten?
Antwort: Ja, Du kannst den Code so anpassen, dass er mehrere Spalten durchsucht, indem Du die .Columns-Referenz entsprechend änderst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige