Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
184to188
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
184to188
184to188
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

FIND/FINDNEXT

FIND/FINDNEXT
02.12.2002 01:25:06
Andreotti
Hi geliebtes Forum,
ich habe über 15.000 Datensätze aus einer externen Quelle.
In Spalte 'B' sind Namen, teils natürliche Personen, teils Firmen. Die erfassten Namen sind durch unsaubere User-Eingaben teils fehlerhaft, teils in verkehrter Reihenfolge (zB Vorname-Name oder Name-Vorname).
Ich möchte nun zB alle Zellen nur in Spalte 'B' untersuchen, in denen der Name 'Müller' vorkommt, und nur dann eine Meldung bekommen, wenn dieser Name an zwei Fundstellen gefunden wurde.
Gerne wurde ich User-Fehler abfangen, die (hier zB) 'Müller' mal mit 'ü' und mal mit 'ue' geschrieben haben.
Zuerst hatte ich es mit herkömmlichen Schleifen versucht, aber das ist ziemlich langsam...
Nun beschäftige ich mich mit FIND, aber ich kann meinem Code nicht beibringen, zB nur Erika zu finden, nicht aber amERIKAnisch, auch klappt noch nicht, dass die Meldung NUR dann erscheint, wenn ZWEI Treffer gefunden wurden.

Mein Code kommt mir auch reichlich umständlich vor, hat er doch mittlerweile mehr als 200 Zeilen - weshalb ich ihn hier auch nicht abbilde... ;-)

Alle Hilfe ist herzlich willkommen!
Vielen Dank schonmal,
Andreotti

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: FIND/FINDNEXT
02.12.2002 02:33:28
Nepumuk
Hallo Andreotti,
den Müller mit ü und ue in einem Zug das klappt nicht. Ich kenne aber persönlich einen Mueller mit ue. Also muss das nicht unbedingt verkehrt sein. Ansonsten probier mal dieses Programm:

Option Explicit
Public Sub suchen()
Dim zellen As Range, Suchbegriff As String, Adresse As String, zähler As Integer
Suchbegriff = InputBox("Suchbegriff eingeben", "Eingabe")
If Suchbegriff <> "" Then
With Range(Cells(1, 2), Cells(Range("B65536").End(xlUp).Row, 2))
Set zellen = .Find(What:=Suchbegriff, LookAt:=xlWhole, MatchCase:=True)
If Not zellen Is Nothing Then
Adresse = zellen.Address
Do
zähler = zähler + 1
Set zellen = .FindNext(zellen)
Loop While Not zellen Is Nothing And zellen.Address <> Adresse
End If
If zähler > 1 Then MsgBox Suchbegriff & " wurde " & CStr(zähler) & " mal gefunden.", 64, "Information"
End With
End If
End Sub

Gruß
Nepumuk

Anzeige
Re: FIND/FINDNEXT
02.12.2002 09:36:56
TOM
Hallo Andreotti

Also mit LookIn:=xlPart, lookat:=xlWhole wird im Find nur nach exakt dem Wort gesucht, dass Du in der Inputbox oder so eingibst.
Ich habe auch eine Suche programmiert, wenn die Suche mehr als zwei Begriffe findet blendet er alle gefundenen Werte in einer Listbox auf wo ich dann auswählen kann. Wird nur ein Begriff gefunden wird das Userform gerade mit den Werten gefüllt.

Wenn Du interesse hast sende ich Dir gerne dieses Programm.

Gruss TOM

Re: FIND/FINDNEXT
02.12.2002 14:53:12
Andeotti
Hi Thomas,
erstmal vielen Dank für die Zusendung Deines Bsp.-Codes.
Ich weiss nicht, welches Prob ich hier habe, aber Dein Code funzt bei mir nicht.
Egal, ob ich im frmVerwaltung oder frmSuchen wie in Deiner Anleitung angegeben das geforderte Suchwort eingebe: stets erhalte ich die ERR Msg ‚Datentypen unverträglich’.
Allerdings, so wie ich Deinen Code verstanden habe, würde der meine Zielsetzung auch nicht beheben.
Denn Dein Code sucht nach einer Zeichenfolge an einer beliebigen Stelle in der Zelle.
Ich möchte aber, dass nur dann ein Treffer zurückgegeben wird, wenn ein bestimmtes (genazes) Wort innerhalb der Zeichen in einer Zelle gefunden wird. Und zwar erst dann, wenn ich ZWEI Treffer von der Sorte habe.
Bspw.:
Suche nach Erika
1.Zelle: Dr. Erika Schmidt
2.Zelle: Büro Erika Müller
3.Zelle: AmERIKAnische Botschaft

Treffer sind dann 1. und 2. Zelle, nicht aber 3. Zelle.
Sollte 1. oder 2. Zelle ohne die andere als Gegenstück auftreten, dann wäre zwar die Zeichenfolge gefunden, es wäre aber nicht ein Treffer, weil nur einmal gefunden.

Ich habe mittlerweile selbst weitergesucht.
Mein Code sieht so aus:


In der ersten FIND Anweisung bekomme ich nun immer die ERR Msg:
Index ausserhalb des gültigen Bereichs...

Mir scheint, dass das an den Angaben zu FIND hängt.
Ich habe noch nicht genau verstanden, welche Definitionen mit 'LookIn' und 'LookAt' gegeben werden. Und: kann es sein, dass die nicht beliebig kombinierbar sind?

Lieben Dank an Alle, die mir helfen!
Greetz, Andreotti

Anzeige
Re: FIND/FINDNEXT
02.12.2002 14:56:12
Andreotti
Nachtrag:
Und so wie es aussieht, habe ich mit dem abgeboldeten Code noch nicht gelöst, dass ein Treffer immer nur dann ausgegeben werden soll, wenn ich ZWEI Zellen mit dem gesuchten string finde.
Liebe Grüsse,
Andreotti

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige