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

Code für Suchfunktion

Code für Suchfunktion
22.10.2002 15:36:28
Sebastian Müller
Hallo,

bastle nun schon fast den ganzen Tag an einen vernünftigen Code für eine Suchfunktion. Folgendes soll bei raus kommen:

In einer Selection (z.B. A1:A200) soll das Wort "KBC" gesucht werden. Achtung: Nicht Zellenwert = "KBC", sondern "KBC" könnte auch so in der Zelle stehen: "KBC-Bank". Wenn gefunden, als MsgBox herausgeben und weiter suchen, bis alle Zellen durchsucht wurden.

Hat jemand eine Idee

Danke.

Gruß,

Sebastian

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Code für Suchfunktion
22.10.2002 16:08:05
GraFri
Hallo

Hier ein Beispielcode. Durchsucht alle Tabellenblätter.

Option Base 1
Option Compare Text

Private Sub CmdStarten_Click()
Call Suchen_und_anzeigen
End Sub

Sub Suchen_und_anzeigen()
Dim Meldung, Pos, Schleife, y As Byte
Dim n, x, xZelle, yZelle As Integer
Dim xTabelle(), Adresse(), Text As String
Dim Begriff, Suchen() As Variant
Dim Bereich As Range

'Bereich festlegen
Set Bereich = Application.InputBox _
("Bitte den zu durchsuchenden Bereich eingeben " & vbCrLf & _
"(z.B.: A1:T200),oder markieren Sie den Such-" & vbCrLf & _
"bereich im Tabellenblatt.", "Bereich festlegen", "A1:T200", Type:=8)

' Suchbegriff eingeben
Begriff = InputBox _
("Bitte den zu suchenden Wert eingeben. Sollen 2 Werte" & vbCrLf & _
"gleichzeitig gesucht werden, dann mit Zeichen + " & vbCrLf & _
"voneinander trennen (z.B.: Summe+die)." & vbCrLf & _
"ENTER ohne Wert = Abbruch", "S U C H M O D U S")
If Begriff = "" Then Exit Sub

Pos = InStr(Begriff, "+")
If Pos Then
ReDim Suchen(2)
Suchen(1) = Left(Begriff, Pos - 1)
Suchen(2) = Right(Begriff, Len(Begriff) - Pos)
Schleife = 2
Else
ReDim Suchen(1)
Suchen(1) = Begriff
Schleife = 1
End If

Application.ScreenUpdating = False

' Letzte Zelle des Bereiches ermitteln. Diese Zelle wird als Startzelle für
' die Suche deffiniert, da Suche nach dieser Zelle, also in erster Zelle
' des Bereiches beginnt.
With Worksheets(1).Range(Bereich.Address)
xZelle = .Columns(.Columns.Count).Column
yZelle = .Rows(.Rows.Count).Row
End With

' Eigentlicher Suchvorgang (in allen Tabellenblättern)
x = 1
For y = 1 To Schleife
For n = 1 To Sheets.Count
With Sheets(n).Range(Bereich.Address)
Set c = .Find(Suchen(y), After:=Cells(yZelle, xZelle), LookIn:=xlValues)
If Not c Is Nothing Then
ErsteAdresse = c.Address
Do
ReDim Preserve Adresse(x): ReDim Preserve xTabelle(x)
xTabelle(x) = Sheets(n).Name
Adresse(x) = c.Address(RowAbsolute:=False, ColumnAbsolute:=False)
Set c = .FindNext©
x = x + 1
Loop While Not c Is Nothing And c.Address <> ErsteAdresse
End If
End With
Next n
Next y

' Anzeige der Suchergebnisse
Text = vbCrLf
For n = 1 To x - 1
Text = Text & xTabelle(n) & Chr(9) & Chr(9) & "Zelle " & Adresse(n) & vbCrLf
Next n

Application.ScreenUpdating = True

' Die Anzahl der gefundenen Werte ist (x - 1), wenn keiner
' gefunden wurde dann ist x = 1
Select Case x
Case 1
Meldung = MsgBox("Es wurde kein übereinstimmender Wert gefunden", _
vbOKOnly, "G E F U N D E N E W E R T E")
Case 2
Worksheets(xTabelle(1)).Select
ActiveSheet.Range(Adresse(1)).Select
Meldung = MsgBox("Es wurde eine Übereinstimmung in" & vbCrLf & _
Text & vbCrLf & "gefunden", vbOKOnly, "G E F U N D E N E W E R T E")
Exit Sub
Case Else
For n = 1 To x - 1
Worksheets(xTabelle(n)).Select
ActiveSheet.Range(Adresse(n)).Select
Meldung = MsgBox("Drücken Sie JA, um den nächsten gefundenen " & _
"Wert zu sehen" & vbCrLf & "Insgesamt gibt es " & (x - 1) & _
" Übereinstimmungen!" & vbCrLf & Text, vbYesNo, "G E F U N D E N E W E R T E")
If Meldung = vbNo Then Exit Sub
Next n
End Select

End Sub

mfg, GraFri

Anzeige
Re: Code für Suchfunktion
22.10.2002 17:33:58
Norbert
Hallo,

ich finde Deine Lösung sehr interessant und möchte sie gerne mit in mein Projekt nehmen. Copy & Paste funktioniert nur leider nicht. Woran liegt das?

P.S. Bei anderen Beiträgen klappt es

Kannst Du es eventuell noch einmal posten?

Danke und Gruß

Norbi

Danke, Super
23.10.2002 09:44:09
Sebastian Müller
Danke,

das läuft ja super. Genau das was ich wollte. Nur schade, dass ich alles abtippen musste, kopieren hat nicht geklappt. :-)

Danke.

Sebastian

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige