Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Nachnamen suchen bleibt beim ersten Treffer stehen

Forumthread: VBA Nachnamen suchen bleibt beim ersten Treffer stehen

VBA Nachnamen suchen bleibt beim ersten Treffer stehen
26.05.2024 13:55:04
Harald Bassler
Servus beinand,

zur kurzen Erläuterung, ich habe mir in YouTube ein Lernvideo angeschaut und für mein Projekt nach geschrieben.
Ich habe eine Datenbank mit Mitgliedern erstellt wo auch Nachnamen mit Dubletten sind, jedoch mit anderen Vornamen.
Der abgeschriebene VBA Code läuft auch und sucht entsprechende Nachnamen. Jedoch bei einem mehrfach auftauchten
Nachnamen wie z.B. Meier, Müller, Schulz zeigt mir der Code nur den ersten Treffer in meiner intelligenten Tabelle an.
Die danach folgenden Treffer kann ich nicht mehr auswählen.

Über Hilfe wäre ich sehr Dankbar
Gruß Harald
https://www.herber.de/bbs/user/169711.txt
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Nachnamen suchen bleibt beim ersten Treffer stehen
26.05.2024 14:15:07
ralf_b
kommentiere mal diese Zeile aus: Zelleneintrag = StrConv(Cells(i, StartSpalte).Value, vbUpperCase)
AW: VBA Nachnamen suchen bleibt beim ersten Treffer stehen
26.05.2024 16:28:24
Harald Bassler
Servus Ralf,

schon mal Danke für den Tipp das Auskommentieren hatte nichts gebracht.
Die Prozedur läuft zwar noch jedoch mit gleichbleibenden Fehler.

Gruß Harald
AW: VBA Nachnamen suchen bleibt beim ersten Treffer stehen
26.05.2024 14:39:34
Onur
Und wie sollen wir diesen Code ohne eine Datei dazu testen können? Sollen wir die Datei dazu selber basteln?
Anzeige
AW: VBA Nachnamen suchen bleibt beim ersten Treffer stehen
26.05.2024 16:04:03
GerdL
Hallo Harald!

..... nimm mal testweise anstelle einer Combobox eine zweispaltige Listbox.

'Treffer
Treffer.AddItem Cells(i, StartSpalte).Value
Treffer.List(Treffer,ListCount -1, 1) = Cells(i, SpaltederVornamen).Value

Gruß Gerd
AW: VBA Nachnamen suchen bleibt beim ersten Treffer stehen
26.05.2024 18:04:25
Piet
Hallo

probier es bitte mal mit der Find Methode, die kann man beliebig wiederholen lassen.
Unten mal 3 verschiedene Versionen, wie man es mit Do Loop bei Find Methode auflisten kann.

mfg Piet

Public Sub EingabeSuchenNeu(Blatt As Worksheet, StartZeile As Integer, StartSpalte As Integer, Suchwort As MSForms.TextBox, Treffer As MSForms.ComboBox)

'Variablen definieren
Dim rFind As Range, Adr1 As String
Dim Eingabe As String, Vorname As String

'Nach Eingaben suchen
'______________________
'Das zugehörige Tabellenblatt aktivieren
' ThisWorkbook.Worksheets("Datenbank").Activate
Blatt.Activate

'ComboBox zu Beginn leeren
Treffer.Clear

'Start beginnt ab Zeile 12, sonst bitte auf 1 ändern!
Set rFind = Columns(StartZeile).Find(What:=Suchwort, After:=Cells(12, StartZeile), _
LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:= _
xlNext, MatchCase:=False)

If Not rFind Is Nothing Then
Adr1 = rFind.Address
Do '** 2 Varianten - mit und ohne Vornamen!!
'Nur Fam.namen auflisten
Treffer.AddItem rFind.Value: n = n + 1
'Fam.Namen mit Vorname auflisten
Treffer.AddItem rFind.Value & " " & rFind.Offset(0, 1): n = n + 1
Set rFind = Columns(StartZeile).FindNext(rFind)
Loop Until rFind.Address = Adr1
End If

'Erster Eingabe aller Suchergebnisse in der ComboBox_Treffer anzeigen
If Treffer.ListCount > 0 Then
Treffer.ListIndex = 0
End If
If n > 0 Then MsgBox m & " Treffer"
End Sub


'Variante 2 mit Vorname
Do
If rFind.Offset(0, 1) = Vorname Then _
Treffer.AddItem rFind.Value: n = n + 1
Set rFind = Columns(StartZeile).FindNext(rFind)
Loop Until rFind.Address = Adr1


'Variante 3 mit Vorname
Dim Txt As String 'Text für Msgbox Ausgabe
Do
Txt = Txt & rFind.Value & " " & rFind.Offset(0, 1) & vbLf
Loop Until rFind.Address = Adr1

MsgBox Txt 'direkte MsgBox Ausgabe
End Sub
Anzeige
AW: VBA Nachnamen suchen bleibt beim ersten Treffer stehen
27.05.2024 23:58:25
Piet
Hallo

ich hatte einige Problem, weil ich nur Excel 2003 auf meinem alten Laptop habe.
LibreOffice konnte sie öffnen, aber das Programm convertiert nur die Makros, KEINE User-Formen-!

Ich denke ich konnte euch helfen, du wirst über das Ergebnis sicher sehr überrascht sein.
Die ComboBox ist auf 3spaltig umgestellt, und du bekommst die Trefferanzahl angezeigt.
https://www.herber.de/bbs/user/169748.xls

Ein zusätzliches Problem bei deinem Code ist, das auch die ComboBox Auswertung beim 1. Namen hängen blieb!
Das ist inzwischen geklärt, weil ich beim auflisten die ID-Nummer des Namens mit aufliste!
Sie ist gleichzeitig auch die richtige Zeilenzahl, wenn man zum ListIndex 11 Zeilen dazuzählt.

Ich bin mir nicht ganz sicher ob alle übrigen Funktionen noch einwandfrei laufen, deshalb bitte gündlich testen.
Am besten in meiner Beispieldatei mit deinen Originaldaten. Dann wird die Originaldatei im Fehlerfall nicht beschädigt.

Wenn alles einwandfrei läuft brauchst du nur den Code im Modul Datenbank in deine Datei zu kopieren.
In der UserForm musst du noch ein Labelfeld für die Trefferzahl einrichten. Du siehst es ja im Beispiel bei mir.
Gegen ein kleines Entgelt habe ich nichts, das ist aber freiwillig. Ein Lottoschein, 5 Wochen ohne Zusatz ca. 7-8 Euro?
Grüsse aus Izmir nach München. (Hier kann ich kein deutsches Lotto spielen!)

mfg Piet
Anzeige
AW: VBA Nachnamen suchen bleibt beim ersten Treffer stehen
28.05.2024 17:59:49
Harald Bassler
Servus Piet,

ich hoffe ich störe dich nicht zu sehr in deinem Urlaub?!
Nun das ganze schaut doch schon sehr gut aus, diese dreifache Combobox Respekt!!
Das Label mit der Ziffer "5" soll wohl der Zähler sein für die gefundenen Treffer?
Nun wenn dem so ist wahr das bei mir OHNE Funktion. Das mit dem auswählen in der
Combobox wow!!
Jedoch wenn es dir möglich wäre, im TextBox Feld Suchbegriff muss ich jetzt den ganzen Nachnamen
angeben und diesen auch noch richtig schreiben. Sonst bekomme ich keinen Treffer.
Es wäre sicherlich sinnvoll wenn es so wäre wie in meiner Beispieldatei. Mann gibt den ersten Buchstaben
in Suchfeld und er beginnt gleich mit der Suche. Je mehr Buchstaben um so genauer wird die Trefferliste.

Das mit der keinen Entgeldzahlung wäre mir schon wichtig, du investierst ja auch deine Freizeit hierfür.
Ich dachte an folgendes, wenn du eine Emailadresse (davon gehe ich mal schwer davon aus) hast ein
ein Konto bei PayPal, dann würde ich dir gerne eine kleine Spende zukommen lassen.

LG Harald
Anzeige
AW: VBA Nachnamen suchen bleibt beim ersten Treffer stehen
28.05.2024 18:34:26
Piet
Hallo Harald

schmunzel, schmunzel, vielen Dank für deine Urlaubsgrüsse!
Ich hatte garnicht mitbekommen das ihr schon nach dem 1. Buchstaben sucht. Das sollte jetzt klappen.
Ich habe auch die Columnbreite für die erste Spalte auf 60 Pt. verkleinert, dann entfällt die Scrollleiste.
Bitte teste mal ob jetzt alles so läuft wie ihr euch das wünscht. - Würde mich sehr freuen.
https://www.herber.de/bbs/user/169761.xls

mfg Piet

PS ich bin nicht im Urlaub, ich lebe hier, bin hier gemeldet. Deshalb ist es schwierig Lotto zu spielen!
PaBal habe ich nicht, kann dir aber meine Mail geben um das zu besprechen: - Psta.tr@hotmail.com.tr


Anzeige
AW: VBA Nachnamen suchen bleibt beim ersten Treffer stehen
26.05.2024 20:00:00
Harald Bassler
Servus Piet,
vielen Dank für deine Prozedur. Ich habe deine Prozedur gegen meine getauscht.
Habe alle drei Varianten ausprobiert und leider hatte ich keinen Erfolg.

Aber das Ganze dürfte eher an meinen Kenntnissen liegen bzw. eher Unkenntnissen!!.
Diesbezüglich bin ich ein totaler Ausfall. Ich kann mir hier einfach nicht helfen, dazu fehlen mir
die VBA Kenntnisse. Jedoch nochmals vielen Dank für deine Bemühungen.

Wenn du evtl. nochmal schauen magst ich habe in das Forum ein strakt gekürzte Variante hochgeladen

Gruß aus München Harald
Anzeige
AW: VBA Nachnamen suchen bleibt beim ersten Treffer stehen
26.05.2024 20:18:11
Piet
Hallo Harald

ich sehe keine Beispieldatei, musst du bitte nochmal hochladen.
Dann bekommst du einen Link. Diesen Link musst du in die AW kopieren! - (blaue Schrift beim senden)

Was genau möchtest du denn erreichen, ich kann es so programmieren wie du es brauchst.
Man kann alle Müller mit Vorname Max auflisten, falls der doppelt vorkommt??
Man kann ALLE Müller mit Vornamen auflisten, wenn der Fam.name mehrfach vorkommt.
Du kannst es in die UserForm ComboBox kopieren, oder als MsgBox direkt anzeigen lassen.
Dazu muss ich aber wissen in welchen Spalten die Namen stehen?? Sind die fest, oder änderbar??

Wie möchtest du es denn haben?? Als MsgBox oder in der UserForm??

mfg Piet
Anzeige
AW: VBA Nachnamen suchen bleibt beim ersten Treffer stehen
26.05.2024 20:29:47
Harald Bassler
Servus Piet,
ich habe das ganze in einer User Form. Wenn das mit der Musterdatei funktioniert wirst du gleich
mein Problem sehen. Nun ich hoffe ich mache das Richtig mit der Datei.
Überrings brauche ich das für meine ehrenamtliche Tätigkeit bei der Deutschen Rheuma-Liga.
Also du würdest ein gutes Werk tuen.
Aber wenn die dafür ein kleines Entgelt haben möchtest ist das auch kein Problem.

Gruß Harald

https://www.herber.de/bbs/user/169729.xlsm
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige