04.08.2016, 08:09
Hallo liebe Excel-Experten,
habe da eine Frage zu meinem Abkürzungsverzeichnis. Ich habe einen Code gefunden, der genau das wieder spiegelt, was ich suche, eine simple Suchabfrage einer Abkürzung und das Ergebnis wird in einer 2-spaltigen Listbox ausgegeben. (Abkürzung, Erklärung)
Jetzt habe ich folgendes Problem, wenn ich in meiner Suchmaske aber einen Teilbegriff eingebe, möchte ich, dass alle Wörter, die diesen Begriff beinhalten dargestellt werden. z.B.
SpalteA:
(a)Sim
Abc
AAC
ACA
..
SIM
Sucheingabe: SIM
Ergebnis sollte sein: (a)Sim, SIM
Tatsächliches Ergebnis: SIM
Gibt es eine Möglichkeit?
Ich habe anstelle von xlWhole, xlPart versucht, aber das klappt leider nicht :( HIIIIIIIIIIIILFE
Mein Code ist folgender:
Ich habe mich schon durch googelt gestürmt, aber es gab bisher keine Lösung, kann mir jemand helfen?
vielen DANK
habe da eine Frage zu meinem Abkürzungsverzeichnis. Ich habe einen Code gefunden, der genau das wieder spiegelt, was ich suche, eine simple Suchabfrage einer Abkürzung und das Ergebnis wird in einer 2-spaltigen Listbox ausgegeben. (Abkürzung, Erklärung)
Jetzt habe ich folgendes Problem, wenn ich in meiner Suchmaske aber einen Teilbegriff eingebe, möchte ich, dass alle Wörter, die diesen Begriff beinhalten dargestellt werden. z.B.
SpalteA:
(a)Sim
Abc
AAC
ACA
..
SIM
Sucheingabe: SIM
Ergebnis sollte sein: (a)Sim, SIM
Tatsächliches Ergebnis: SIM
Gibt es eine Möglichkeit?
Ich habe anstelle von xlWhole, xlPart versucht, aber das klappt leider nicht :( HIIIIIIIIIIIILFE
Mein Code ist folgender:
Zitat:Private Sub Lst_Abkuerzungen_Click()
Txt_Abk = Lst_Abkuerzungen
End Sub
Private Sub Txt_Abk_Change()
Dim LoI As Long ' Schleifenvariable
Dim LoZeile As Long ' Variable für Zeile in Listbox
Dim RaFound As Range ' Variable für das Suchergebnis
Application.ScreenUpdating = False ' Bildschirmaktualisierung aus
If Txt_Abk = "" Then ' keine Eingabe in der Textbox
' gesamte Liste zuweisen
Lst_Abkuerzungen.RowSource = "A5:B" & LoLetzte
Else
Lst_Abkuerzungen.RowSource = "" ' Adressbreich für Listbox löschen
With Worksheets("Tabelle1")
' erste Zeile Suchen
' letzte belegte Zeile unabhängig von Excelversion für Spalte A (1)
LoLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), _
Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)
Set RaFound = .Range("A5:A" & LoLetzte).Find(Txt_Abk _
& "*", .Cells(LoLetzte, 1), , xlWhole, , xlNext)
If Not RaFound Is Nothing Then ' Begriff wurde gefunden
' Schleife von gefundener Stelle bis zu letzten Zeile
For LoI = RaFound.Row To LoLetzte
' Prüfen ob Abk noch mit dem Inhalt aus
' der Textbox beginnt
If UCase(Left(.Cells(LoI, 1), Len(Txt_Abk))) _
= UCase(Txt_Abk) Then
' Abk eintragen
Lst_Abkuerzungen.AddItem .Cells(LoI, 1)
' Abk eintragen
Lst_Abkuerzungen.List(LoZeile, 1) = .Cells(LoI, 2)
LoZeile = LoZeile + 1 ' Zeilennummer um 1 erhöhen
' auskommentiert wegen Umlaute
'Else
'Exit For ' Schleife verlasen
Else
If UCase(Left(.Cells(LoI, 1), 1)) _
<> UCase(Left(Txt_Abk, 1)) Then
Exit For
End If
End If
Next
End If
End With
End If
Set RaFound = Nothing ' Variable leeren
Application.ScreenUpdating = True ' Bildschirmaktualiserung ein
End Sub
Private Sub UserForm_Initialize()
With Worksheets("Tabelle1")
' letzte belegte Zeile unabhängig von Excelversion für Spalte A (1)
LoLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), _
.Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count)
' Abkbereich der Listbox zuweisen
Lst_Abkuerzungen.RowSource = "A5:b" & LoLetzte
Lst_Abkuerzungen.ColumnCount = 2 ' Spaltenanzahl der Listbox einstellen
End With
End Sub
Ich habe mich schon durch googelt gestürmt, aber es gab bisher keine Lösung, kann mir jemand helfen?
vielen DANK