Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1412to1416
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
Inhaltsverzeichnis

bekomme Exkate Suche nicht hin

bekomme Exkate Suche nicht hin
04.03.2015 08:18:59
Daniel
Hallo zusammen
ich habe hier ein Skript welches nach einer Eingabe eine Zahl in einer Spalte sucht und und bei jedem Treffer die Zeile markiert, die den Wert NICHT enthält. Schliesslich werden alle markierten Zellen ausgeblendet. In der zu suchenden Spalte können in den einzelnen Zellen mehrere Zahlen stehen. Jetzt kommt die Krux: z.B. suche ich nach "11", aber nun markiert es auch Zeilen mit "211" oder "112". Es darf nur der EXAKTE Wert gefunden werden.
Ich habe schon probiert das "LookAt:=xlWhole" einzubauen, ich bekomme es nicht hin und verstehe es ehrlich gesagt auch nicht - ich bin absolut kein Profi sondern ein Kopierer und Umbauer. Das hat bisher ganz gut funktioniert...bisher.
Private Sub Suche_Click()
ActiveSheet.Outline.ShowLevels RowLevels:=2
Dim Zelle As Range
Dim Bereich As Range
Dim rngGefunden As Range
Dim Eingabe As String
Set Bereich = Range("F11:F" & Cells(Rows.Count, 1).End(xlUp).Row) 'Suche bis letzte gefüllte  _
Zelle in Spalte F
Eingabe = UCase(InputBox("BKP Suche", "Bitte hier BKP eintippen"))
For Each Zelle In Bereich
If InStr(UCase(Zelle.Value), Eingabe) = 0 Then
If Not rngGefunden Is Nothing Then
Set rngGefunden = Union(rngGefunden, Rows(Zelle.Row))
Else
Set rngGefunden = Rows(Zelle.Row)
End If
End If
Next Zelle
If Not rngGefunden Is Nothing Then
rngGefunden.Select    'auswählen der gefundenen Zeilen
Selection.EntireRow.Hidden = True
Else
MsgBox ">> " & Eingabe & "

Danke&Grz

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: bekomme Exkate Suche nicht hin
04.03.2015 08:29:00
Daniel
Hi
LookAt:=xlwhole gibts nur bei der .Find-Funktion.
du gehst aber jede Zelle einzeln durch und prüfst mit Instr, ob der gesuchte Text in der Zelle enthalten ist (instr gibt dir die Position des gesuchten Textes im durchsuchten Text)
für eine Überprüfung auf exakte Übereinstimmung nimm einfach "="
For Each Zelle In Bereich
If Not UCase(Zelle.Value) = Eingabe Then
If Not rngGefunden Is Nothing Then
Set rngGefunden = Union(rngGefunden, Rows(Zelle.Row))
Else
Set rngGefunden = Rows(Zelle.Row)
End If
End If
Next Zelle
Gruß Daniel

Anzeige
AW: bekomme Exkate Suche nicht hin
04.03.2015 13:08:54
Daniel
Hallo Daniel
kann sein dass die Antwort jetzt zweimal kommt, ich habe vorhin schon etwas geschrieben, aber das taucht nirgends auf. Also nächster Versuch: Vielen herzlichen Dank für die schnelle Antwort.
Das Skript funktioniert an sich aber leider nicht in der Tabelle. Da stehen z.B. in einer Zelle mehrere durch Kommata getrennte Zahlen "211, 212, 213, 214, 271" und wenn ich jetzt nach 211 suchen lasse, wird dies nicht gefunden. Hast du vlt noch eine Idee?
Danke&Grz

AW: bekomme Exkate Suche nicht hin
04.03.2015 17:20:58
Daniel
Hi
Wenn du nach Teiltexten sucht und eine genaue übereinstimmung brauchst, dann musst du die Trennzeichen mit in die Suche einbeziehen.
Damit auch Texte am Anfang und am Ende gefunden werden, ergänzt man hier ebenfalls die Trennzeichn vor und nach dem zu durchsuchenden Text:

if Instr(TrZ & zuDurchsuchenderText & TrZ, TrZ & SuchText & TrZ) = 0
gruß Daniel

Anzeige
AW: bekomme Exkate Suche nicht hin
05.03.2015 07:53:31
Daniel
Hallo Daniel
vielen Dank für deine Hilfe. Ich habe es jetzt so gemacht
...
For Each Zelle In Bereich
If InStr(("," & UCase(Zelle.Value) & ","), "," & Eingabe & ",") = 0 Then
If Not rngGefunden Is Nothing Then
Set rngGefunden = Union(rngGefunden, Rows(Zelle.Row))
Else
Set rngGefunden = Rows(Zelle.Row)
End If
End If
Next Zelle
...
das bedeutet, dass die Zellen in denen gesucht wird astrein ausgefüllt sein müssen. Es dürfen nur Kommas verwendet werden, keine Striche, z.B. 250-260. Für den Fall dass so etwas zwangsläufig drinsteht - könnte man dann auch zwei Suchläufe einbauen? Oder könnte man das in eine Zeile packen, also bspw. Suche entweder nach der Kombination mit Trz "," oder "-"?
Gruss Daniel

Anzeige
AW: bekomme Exkate Suche nicht hin
06.03.2015 07:18:11
Daniel
Hallo zusammen
da das Problem gelöst ist und mir sehr geholfen wurde möchte ich mich bedanken indem ich das fertige Skript hier rein stelle in der Hoffnung, dass es anderen auch nützlich sein möge. Zunächst also die Abfrage nach einer Zahl die sich in einer bestimmten Spalten befindet, es werden als Resultat nur die Zeilen eingeblendet die diese Zahl beinhalten und in einer weiteren Schleife werden noch alle Zeilen die in einer anderen Spalte den Eintrag "nein" haben ausgeblendet.
Dim Zelle As Range
Dim Bereich As Range
Dim rngGefunden As Range
Dim Eingabe As String
Dim iSpalte As Integer
Dim IZeile As Long
Set Bereich = Range("F8:F" & Cells(Rows.Count, 1).End(xlUp).Row) 'Suche bis letzte gefüllte Zelle in Spalte F
Eingabe = UCase(InputBox("BKP Suche", "Bitte hier BKP eintippen"))
For Each Zelle In Bereich
If InStr(("," & UCase(Zelle.Value) & ","), "," & Eingabe & ",") = 0 Then
If Not rngGefunden Is Nothing Then
Set rngGefunden = Union(rngGefunden, Rows(Zelle.Row))
Else
Set rngGefunden = Rows(Zelle.Row)
End If
End If
Next Zelle
If Not rngGefunden Is Nothing Then
rngGefunden.Select 'auswählen der gefundenen Zeilen
'Sheets.Add 'oder kopieren auf ein neues Blatt
Selection.EntireRow.Hidden = True
Else
MsgBox ">> " & Eingabe & " End If
iSpalte = 10
For IZeile = 1 To Cells(Rows.Count, iSpalte).End(xlUp).Row
If Cells(IZeile, iSpalte) = "nein" Then
Rows(IZeile).EntireRow.Hidden = True
End If
Next IZeile

Anzeige
AW: bekomme Exkate Suche nicht hin
04.03.2015 12:11:39
Daniel
Hallo Daniel
was hab ich da geschrieben....Exkate?....na egal, herzlichen Dank für die schnelle Hilfe. Es funktioniert, leider ist aber was an der Tabelle Schrott. Da stehen in den Zellen nur einzelne Zahlen drin, teils mehrere getrennt durch ein Komma, Semikolon und mit Klammern, z.B. 214, 221, 273; (215, 224, 276, 277, 281, 282, 283)(original Kopie aus Zelle). Komischerweise bekommt man kein Suchergebnis wenn man z.B. nach 221 sucht. Aber das liegt nicht am Skript, sondern das funktioniert schon nicht wenn man STRG F sucht.
Wenn einer noch eine Idee dazu hat wie man das vernünftig formatieren könnte, damit die Suche klappt bin ich dankbar ansonsten tüftle ich mich weiter durch
Gruss Daniel
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige