Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
664to668
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
664to668
664to668
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
eingebettete TextBox
11.09.2005 22:23:36
Lian
Hallo Excelfreaks ;)
eine große unübersichtliche Exceltabelle möchte ich mit einer längst notwendigen Suchoption versehen. Dazu habe ich eine Textbox und einen Suchbutton eingebettet.
Die Textbox beinhaltet bereits einen möglichen Suchbegriff. Nach einem Klick in die Textbox, soll dieser verschwinden und bereit zur Eingabe eines neuen Sucheintrags sein.
Nach anschließendem Bestätigen der Enter-Taste bzw. nach Klick auf den nebenliegenden Suchen-Button soll unter Verwendung des Autofilters nur alle Zeilen eingeblendet werden in deren vordefinierter Spalte dieser Eintrag gefunden wurde.
Für eure mühevolle Hilfe bedanke ich mich im Voraus und wünsche euch einen guten Start in die neue Woche!

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: eingebettete TextBox
11.09.2005 22:37:31
Matthias
Hallo Lian,
das ganze ist in meinem Beispiel ohne Autofilter, aber vielleicht taugt es dir:
auf Tabellenblatt:
Einen Button "SuchenButton", Eine Textbox "TextBox1", beides aus der Steuerelement-Toolbox
Code ins Arbeitsblattmodul:

Private Sub SuchenButton_Click()
Const Spalte = 1 '1 für Spalte A
Rows.Hidden = False
If TextBox1.Value = "" Then Exit Sub 'nur einblenden bei leerem Suchbegriff
Dim lz As Long, i As Long
lz = Cells(Rows.Count, Spalte).End(xlUp).Row
Application.ScreenUpdating = False
For i = 2 To lz
Rows(i).Hidden = InStr(Cells(i, Spalte), TextBox1.Text) = 0 'prüft auch Teilinhalte!
Next i
Application.ScreenUpdating = True
End Sub
'löscht Textbox beim Anklicken
Private Sub TextBox1_GotFocus()
TextBox1.Value = ""
End Sub

Gruß Matthias
Anzeige
so leider noch nicht verwendbar
12.09.2005 10:13:04
Lian
Vielen Dank für die Lösung. Das Script funktioniert soweit ganz gut. So zeigt es nur noch die Suchergebnisse der Liste an.
Dies ist jedoch auch ein großes Manko. Ich habe leider keinen Platz für eine weitere Schaltfläche, die den Ursprungszustand wiederherstellt.
Nach Schließen bzw. Vor dem Öffnen sollten immer alle Einträge angezeigt werden.
- Deshalb wollte ich den Autofilter dafür nutzen -
Wäre es vielleicht möglich, dass wenn nichts in der TextBox1 steht und man auf Suchen klickt damit der Ursprungszustand wieder hergestellt wird? Das wär eine schöne Lösung!
Besten Dank im Voraus!
Anzeige
AW: so leider noch nicht verwendbar
12.09.2005 13:47:17
Matthias
Hallo Lian,
Wäre es vielleicht möglich, dass wenn nichts in der TextBox1 steht und man auf Suchen klickt damit der Ursprungszustand wieder hergestellt wird?
Hast du es versucht? Es müsste doch klappen wegen dieser Zeilen:

Rows.Hidden = False
If TextBox1.Value = "" Then Exit Sub 'nur einblenden bei leerem Suchbegriff

Und beim Öffnen alle Zeilen einblenden ginge so:
In "DieseAbeitsmappe"

Private Sub Workbook_Open()
Sheets("Dein Tabellenname").Rows.Hidden = False
End Sub

Gruß Matthias
Anzeige
AW: so leider noch nicht verwendbar
12.09.2005 22:21:59
lian
Hallo.
Erst einmal vielen Dank für die Mühe!
Dein Script funktioniert entgegen der ersten Offenbarungen nun doch fehlerfrei (Ursache war ein Kompatibilitätsproblem mit einem weiteren Makro).
Gern hätte ich jedoch noch eine kleine Erweiterung eingbaut. So habe ich einen weiteren Button, mit dem man nicht nach einem bestimmten Zeichenfolge (oder einen Teil davon) suchen soll, sondern nach allen Zellen, die eine Zeichenfolge enthalten (also nicht leer sind).
Dazu habe ich dein Script kopiert und mit der IsEmpty-Funktion angepasst, was ich auf Anhieb in der Kürze der verbleibenden Zeit jedoch nicht fehlerfrei zum Laufen bekam.
Hast du eine Idee?
Anzeige
kleines Detail noch...
12.09.2005 22:22:47
lian
Hallo.
Erst einmal vielen Dank für die Mühe!
Dein Script funktioniert entgegen der ersten Offenbarungen nun doch fehlerfrei (Ursache war ein Kompatibilitätsproblem mit einem weiteren Makro).
Gern hätte ich jedoch noch eine kleine Erweiterung eingbaut. So habe ich einen weiteren Button, mit dem man nicht nach einem bestimmten Zeichenfolge (oder einen Teil davon) suchen soll, sondern nach allen Zellen, die eine Zeichenfolge enthalten (also nicht leer sind).
Dazu habe ich dein Script kopiert und mit der IsEmpty-Funktion angepasst, was ich auf Anhieb in der Kürze der verbleibenden Zeit jedoch nicht fehlerfrei zum Laufen bekam.
Hast du eine Idee?
Anzeige
AW: kleines Detail noch...
14.09.2005 02:09:04
Matthias
Hallo Lian,
blendet alle Zeilen, in denen Spalte A leer ist, aus:

Private Sub NichtLeerButton_Click()
Const Spalte = 1 '1 für Spalte A
Rows.Hidden = False
Dim lz As Long, i As Long
lz = Cells(Rows.Count, Spalte).End(xlUp).Row
Application.ScreenUpdating = False
For i = 2 To lz
Rows(i).Hidden = Cells(i, Spalte) = ""
Next i
Application.ScreenUpdating = True
End Sub

Gruß Matthias
AW: kleines Detail noch...
14.09.2005 12:32:51
Lian
Vielen Dank!
Funktioniert :)
doch noch nen Fehler gefunden
14.09.2005 13:24:27
Lian
Hab nen Fehler in dem Script entdeckt.
Klickt man 2 mal auf die Schaltfläche zeigt es plötzlich wieder alle Einträge an. Es soll jedoch immer das gleiche Ergebnis anzeigen, nämlich, jenes was nach dem 1. Klick angezeigt wird.
Wie muss ich die an meine Anforderungen bereits angepasste Prozedur nun ändern, um immer das gleiche Ergebnis zu bekommen?
Anzeige
AW: doch noch nen Fehler gefunden
14.09.2005 13:45:29
Matthias
Hallo Lian,
hmm... kann mir den Fehler nicht erklären... lass mal "Rows.Hidden = False" raus.
Gruß Matthias
AW: doch noch nen Fehler gefunden
15.09.2005 16:17:39
Lian
das war die Lösung!
Hätte mir damals auch selbst einfallen können!
Danke für die Hilfe!

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige