Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
920to924
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
920to924
920to924
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Dynamische Suche möglich in/mit Excel?

Dynamische Suche möglich in/mit Excel?
01.11.2007 16:42:00
Sonnenpeter
Hallo,
ich suche einen Weg, mit einem Excel-Makro eine Dynamische-Suche aufzubauen.
Also nach jeder Buchstabeneingabe soll automatisch in der vorgegebenen Tabelle von gesucht und die übereinstimmenden Begriffe ausgeworfen werden.
Beispiel:
S in die Zelle eingegeben, gibt alle Begriffe aus die mit S beginnen, Su alle mit Su, Suc alle mit Suc. unsw.
Bisher habe ich mit nachfolgendem Makro gearbeitet:
Dim SpeicherPlätze As Variant
Dim GefundeneZelle As Variant

Sub SuchUndFind()
Dim MenueZelle As Variant
SpeicherPlätze = Sheets("Suchbegriffe").Range("E1").Value
If Sheets("Menue").Range("C4").Value = "" Then
Mldg = "SIE HABEN KEINEN SUCHBEGRIFF ANGEGEBEN! "
Stil = vbExclamation + vbCritical + vbDefaultButton2
Title = "Suchbegriff?"
Ergebnis = MsgBox(Mldg, Stil, Title)
Sheets("Menue").Range("C4").Select
Exit Sub
End If
Sheets("Menue").Unprotect
Sheets("Menue").Range("C6:G" & SpeicherPlätze).Value = ""
Suchwert = Sheets("Menue").Range("C4").Value
With Sheets("Suchbegriffe").Range("A:A")
Set GefundeneZelle = .Find(Suchwert, LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, _
SearchDirection:=xlNext)
If GefundeneZelle Is Nothing Then
Mldg = "Der Suchbegriff ist nicht gespeichert! "
Stil = vbExclamation + vbCritical + vbDefaultButton2
Title = "Suchbegriff?"
Ergebnis = MsgBox(Mldg, Stil, Title)
Sheets("Menue").Protect
Sheets("Menue").Range("C4").Select
End If
If Not GefundeneZelle Is Nothing Then
ersteAdresse = GefundeneZelle.Address
Do
MenueZelle = Sheets("Menue").Range("A1").Value + 1
Set GefundeneZelle = .FindNext(GefundeneZelle)
If GefundeneZelle.Value = "Begriff" Then
Sheets("Menue").Range("C" & MenueZelle) = ""
Else
Sheets("Menue").Range("C" & MenueZelle) = GefundeneZelle
Sheets("Menue").Range("E" & MenueZelle) = GefundeneZelle(RowAbsolute + 1, 2)
Sheets("Menue").Range("G" & MenueZelle) = GefundeneZelle(RowAbsolute + 1, 3)
End If
Loop While Not GefundeneZelle Is Nothing And GefundeneZelle.Address  ersteAdresse
Sheets("Menue").Protect
Sheets("Menue").Range("C6").Select
End If
End With
End Sub


Wie immer für jede Hilfe Dankbar
Gruß Sonnenpeter

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

Betreff
Datum
Anwender
Anzeige
AW: Dynamische Suche möglich in/mit Excel?
01.11.2007 17:15:01
Daniel
Hi
Dein Makro kann ich leider nicht testen und optimieren, da ich keine Lust habe, mir die Datei drumherum zu basteln.
Außderdem ist es wegen unvollständiger Variablendeklaration unsauber programmiert.
daher hier ne Möglichkeit, wie man sowas ohne VBA mit Formeln lösen kann:
https://www.herber.de/bbs/user/47324.xls
Gruß, Daniel

AW: Dynamische Suche möglich in/mit Excel?
01.11.2007 17:53:00
Sonnenpeter
Hallo Daniel,
unsauberes Makro? "ist richtig!" es funktioniert aber :-).
Ich suche halt einen neuen Weg per Makro.
Mal sehen vieleicht hat doch noch jemand schon eine Lösung in der Schublade.
Trotzden Danke für die Formellösung, kann ich sicher auch mal brauchen.
Gruß Sonnenpeter

Anzeige
AW: Dynamische Suche möglich in/mit Excel?
01.11.2007 18:30:00
Daniel
Hi
also bei mir kommt ne Fehlermeldung so mit "Variable nicht deklariert" (ich glaube für Mdlg)
entweder hast du nicht alles gepostet, oder du arbeitset nicht mit OPTION EXPLICT.
OPTION EXPLICT ist aber seeeeehr empfehlenswert, da jede Variable extra deklariert werden muss.
das bedeutet zwar etwas mehr arbeit, aber es schützt einen vor Tippfehlern, da VBA sofort mit nem Fehler abbricht, wenn eine Variablenbezeichnung nicht stimmt.
ohne OPTION EXPLICT würde VBA einfach mit ner neuen Variable mit dem Wert 0 oder leer weiterrechnen und man wundert sich nachher über seltsame Ergebnisse, ohne daß man irgendwo nen Fehler finden kann.
Gruß, Daniel

Anzeige
AW: Dynamische Suche möglich in/mit Excel?
01.11.2007 17:59:00
Thomas
Hallo Sonnenpeter,
hier mal eine Lösung wie ich sie benutze. Allerdings mit einer Userform. Das Umarbeiten für deine Zwecke dürfte dann gut möglich sein.
Durch doppelklicken auf A1 im Sheet Suchbegriffe startet die UF.
Ok, die zu suchenden Einträge sind in der kürze der Zeit recht dürftig, aber zum probieren reicht es. Also hier die Datei: https://www.herber.de/bbs/user/47327.xls
Hoffe das hilft dir ein bissl, Tschüß Thomas.

AW: Dynamische Suche möglich in/mit Excel?
01.11.2007 21:41:57
Sonnenpeter
Hallo Thomas,
Danke, damit konnt ich etwas anfangen.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0)  "A1" Then Exit Sub
Zeile = 1
Sheets("Suchbegriffe").Range("B2:B65500").ClearContents
If Range("A1") = "" Then Exit Sub
Dim rng As Range
Suche = Range("A1").Value
With Sheets("Suchbegriffe").Range("A2:A65500")
Set C = .Find(Suche, LookIn:=xlValues, MatchCase:=False)
If Not C Is Nothing Then
firstAddress = C.Address
Do
If UCase(Left(C, Len(Suche))) = UCase(Suche) Then _
Sheets("Suchbegriffe").Range("B" & Zeile).Value = C
If UCase(Left(C, Len(Suche))) = UCase(Suche) Then _
Zeile = Zeile + 1
Set C = .FindNext(C)
Loop While Not C Is Nothing And C.Address  firstAddress
End If
End With
End Sub


Das Ergebnis ist sicher wieder nicht sauber Programiert, aber es funktioniert :-))
Gruß Sonnenpeter

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige