Live-Suche in der Excel-Suchmaschine

Wie Du in Excel eine simple Suchmaschine programmieren und einrichten kannst, wurde in einem älteren Beitrag (siehe Suchmaschine programmieren) illustriert. Hier wird nun ergänzt, wie Du eine Live-Suche etablierst, damit direkt nach Eingabe eines Suchkriteriums die Liste auf die entsprechenden Einträge gefiltert wird.

Nehmen wir nach wie vor an, dass in der Zelle "B1" das Suchkriterium steht. Falls sich also diese Zelle ändert, hat die Suchmaschine direkt zu reagieren. Das Makro aus dem Beitrag "Suchmaschine programmieren" ist hierzu nicht in einem Modul abzulegen, sondern direkt im entsprechenden Tabellenblatt (=Tabelle1 (Suchmaschine))!

vbaprojekttabelle

Zudem ist der Code leicht anzupassen, respektive  um nachfolgende zusätzliche Angaben zu ergänzen. Der vollständige Code wird dann weiter unten aufgeführt.

Anstelle von "Sub Suchmaschine()" zu Beginn hat die erste Codezeile zu lauten:

Private Sub worksheet_change(ByVal target As Range)

Zudem ist eine Wenn-Dann-Kondition einzubauen, die auf die Zelle "B1" verweist - und eben beim Anpassen dieser Zelle das Makro automatisch auslöst.

If target.Row = 1 And target.Column = 2 Then

Darauf folgt der gesamte Code der Suchmaschine, abgeschlossen (vor "End Sub") mit dem Befehl:

End If

Der vollständige Code ...

... (nicht in Modul1 sondern im Tabellenblatt direkt, wie oben erwähnt) lautet demnach:

Private Sub worksheet_change(ByVal target As Range)

If target.Row = 1 And target.Column = 2 Then

Range("D2").Select
Selection.AutoFilter
ActiveSheet.Range("$A$2:$D$8").AutoFilter Field:=4, Criteria1:="<>0"

AnzahlTreffer = Application.WorksheetFunction.Subtotal(3, Range("A:A")) - 2

MsgBox ("Insgesamt " & AnzahlTreffer & " Treffer gefunden.")

End If

End Sub

Die Eingabe des Platzhalters/Sternchens (*) erübrigen

Beim Programmieren der Suchmaschine habe ich Dir aufgezeigt, dass das Suchkriterium jeweils mit einem Sternchen vor- und nachher versehen werden sollte - beispielsweise "*Pop*". Um diesem vorzubeugen (es ist also nur noch der Begriff einzugeben, ohne Platzhalter-Symbol), ist die WVERWEIS-Formel minim anzupassen. Wir kombinieren jeweils den Text "*" mit dem Zellbezug auf das Suchkriterium in "B1". Für die Zeile 3 lautet die Formel wie folgt (und kann auf sämtliche weiteren Zeilen herunterkopiert werden):

=WENNFEHLER(WVERWEIS("*"&$B$1&"*";A3:C3;1;FALSCH);0)

Das Excelblog.ch-Forum ist live

Es freut mich, Euch mitzuteilen, dass ab jetzt das Forum auf Excelblog.ch live geschaltet ist. Dies ermöglicht einen besseren und interaktiveren Austausch unter den Lesern. Ihr könnt selbstverständlich nach wie vor via dem Kontaktformular Eure Anfragen und Anliegen an mich richten.

Das Forum ist in verschiedene Teile gegliedert, welche ich Dir hier gerne aufliste:

  • Allgemein
    • Fragen/Hilfe zum Forum (Registrierung, Ankündigungen, etc.)
  • Excel-Forum
    • Tipps & Tricks, Hinweise (von Experten)
    • Generelles (Formate, Layout, Versionen, Bugs, Fehlermeldungen)
    • Formeln & Funktionen
    • Diagramme & Pivots
    • VBA (Makros)
  • Office Applikationen
    • MS Access
    • MS Outlook
    • MS Word
    • MS PowerPoint
  • Off-Topic
    • Vorstellung der Member
    • Vorschläge, Feedback & Anregungen
    • Informatik-Ecke
    • Wirtschaft

Um selbst Themen zu eröffnen oder Beiträge zu schreiben, musst Du Dich zuerst registrieren. Hier geht es direkt zum entsprechenden Formular.

Ich freue mich, Dich im Excelblog.ch-Forum anzutreffen!

2048 in Excel spielen

Im Frühjahr 2014 wurde ein Computerspiel veröffentlicht, das sich im Nu viral verbreitete: 2048 vom italienischen Web-Entwickler Gabriele Cirulli. Es geht darum, auf einem quadratischen Spielbereich (4x4 Felder) Zahlen in 2er-Potenzen (2^1; 2^2; ... - also 2; 4; 8; 16; ...) zusammenzuführen und die Zahl 2048 (2^11) zu erreichen.

2048_Screenshot

Auf www.spreadsheet1.com wurde später eine Excel-Version dieses Spieles veröffentlicht. Die Datei (xl2048.xlsm) kannst Du hier direkt herunterladen. Es handelt sich dabei um ein .xlsm-File - es beinhaltet also ein Makro, damit das Spiel überhaupt aktiv und mit den Pfeiltasten gespielt werden kann. Um es zu spielen, musst Du also nach dem Öffnen der Datei das Makro zulassen. Im ersten Tabellenblatt hast Du eine Kurzanleitung, im zweiten Tabellenblatt befindet sich das Spielbrett - versteckt inmitten von fiktiven Finanzzahlen. Hier das wichtigste in Kürze aufgeführt:

  • Das Spielbrett befindet sich im Bereich "G8:J11".
  • Die Zelle "B4" (Balance sheet) dient als Startknopf - drücke 2x darauf und Du kannst anschliessend mit den Pfeiltasten die Zahlen auf dem Spielbrett entsprechend verschieben.
  • Bewegen und addieren sich Deine Zahlen (bspw. 2+2 = 4; 4+4 = 8), dann steigt auch Deine laufende Punktzahl im Feld "G15".
  • Klickst Du zwei Mal in die Zelle "B24" (Profit and loss) wird sich das Spiel zurücksetzen und Du kannst neu beginnen.
  • Deine übergreifende Highscore wird im Feld "G16" (Provisions") aufgeführt.
  • Falls Du mit der Maus in eine andere Zelle klickst, wird Dein Spiel pausiert und in Zelle "C2" wird "Audit" stehen. Klickst Du abermals zwei Mal auf "B4" - "Balance sheet", wird das Spiel fortgesetzt.

Viel Spass damit!