Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1368to1372
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

Suche nach ID und Namen

Suche nach ID und Namen
14.07.2014 11:42:06
Knoof
Hallo,
Ich habe ein Suchfeld in dem man eine ID eingeben kann und durch den Suchen Button wird diese ID gesucht.
Ist es möglich das gleiche Feld für eine Namenssuche zu verwenden?
Sagen wir der Benutzer kennt die ID nicht, gibt den Nachnamen ein und klickt auf suche, ist das möglich? Habe es bisher noch nicht für beides hinbekommen , nur für die ID.
Private Sub cmdsuchen_Click()
Dim x As Integer
If txtsuche = "" Then
MsgBox ("Bitte füllen Sie das Suchfeld!")
Else
Z = ActiveSheet.UsedRange.Rows.Count
temp = 0
x = txtsuche
For I = 3 To Z
If Cells(I, 1) = x Then
temp = 1
Exit For
End If
Next
If temp = 1 Then
zeile = I
Rows(zeile).Select
MsgBox ("Die Nummer wurde gefunden!")
End Sub

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suche nach ID und Namen
14.07.2014 12:36:16
Ralf
Hallo,
eine For Schleife für die Suche ist ungünstig
Range.Find durchsucht Tausende Zellen in Bruchteilen von Sekunden, das ist besser geeignet.

Private Sub cmdsuchen_Click()
Dim x As String
dim sh as Worksheet
dim Suche as Range
set sh = activesheet
If txtsuche = "" Then
MsgBox ("Bitte füllen Sie das Suchfeld!")
Else
set Suche = sh.columns(1).find(x,,xlvalues,xlwhole)
'columns(1) evtl anpassen
end if
if not suche is nothing then
sh.Rows(suche.row).Select
MsgBox ("Die Nummer wurde gefunden!")
else
MsgBox ("Die Nummer wurde NICHT gefunden!")
end if
End Sub
Gruß
Ralf

Anzeige
AW: Suche nach ID und Namen
14.07.2014 12:40:15
UweD
Hallo
so auf die Schnelle abgeändert.....
Private Sub cmdsuchen_Click()
Dim x As Integer
Dim SP1 As Integer, SP2 As Integer
SP1 = 1 ' Erste Suchspalte
SP2 = 2 ' Zweite Suchspalte
If txtsuche = "" Then
MsgBox ("Bitte füllen Sie das Suchfeld!")
Else
Z = ActiveSheet.UsedRange.Rows.Count
temp = 0
x = txtsuche
For I = 3 To Z
If Cells(I, SP1) = x Or Cells(I, SP2) Then
temp = 1
Exit For
End If
Next
If temp = 1 Then
zeile = I
Rows(zeile).Select
MsgBox ("Die Nummer wurde gefunden!")
End If
End If
End Sub
geht aber auch ohne Schleife mit hilfe von Find...
Gruß UweD

Anzeige
AW: Suche nach ID und Namen
14.07.2014 12:49:55
Knoof
Hallo Uwe,
Danke für deine Antwort.
Leider bekomme ich die Fehlermeldung "Typen unverträglich" in der Zeile
If Cells(I, SP1) = x Or Cells(I, SP2) Then
Ich versteh nicht wieso.
Und SP2 müsste als String deklariert werden da ja nach einem Namen gesucht werden soll.
Gruß, Knoof

AW: uppps
14.07.2014 12:58:41
UweD
If Cells(I, SP1) = x Or Cells(I, SP2) = x Then

AW: uppps
14.07.2014 13:14:50
Knoof
Leider gehts immernoch nicht.
Wenn ich einen Namen als Suchkriterium eingebe kommt der Fehler "Typen unverträglich" das wird wohl daran liegen das x also txtsuche als integer festgelegt ist und der mit dem eingegebenen Namen nicht arbeiten kann.

Anzeige
AW: uppps
14.07.2014 16:37:42
UweD
Hallo nochmal.
Wenn der NAME auch Text sein kann, dann ist genau das der Fehler...
Dim x As String oder
Dim x As Variant
Gruß UweD

AW: uppps
15.07.2014 08:21:19
Knoof
Hallo nochmal :D,
Gut dann sind wir schonmal einen Schritt weiter. Dim x As String würde ja keinen Sinn machen da x ja entweder die ID ist also Integer oder x ist der Name nach dem gesucht wird also String, also denke ich das Variant in Frage kommt.
Nun gibts den Fehler 1004: Anwendungs- oder objektdefinierter Fehler.
Ebenfalls in der Zeile : If Cells(I, SP1) = x Or Cells(I, SP2) = x Then
Wenn ich Or Cells(I, SP2) = x Then heraus nehme ist es kein Problem nach der ID zu suchen, da taucht kein Fehler auf.
Gruß,
Knoof

Anzeige
AW: uppps
15.07.2014 09:02:37
UweD
Hallo nochmal
Die ID (als Zahl vorliegend) kann doch im Makro als Text interpretiert werden.
Ich würde als String deklarieren.
Stell doch mal eine Musterdatei hier hoch...

AW: uppps
15.07.2014 09:37:43
Knoof
Okay ich habe eine Beispieldatei vorbereitet
https://www.herber.de/bbs/user/91507.xlsm
Gebe in die Suche die ID 1111 ein, das klappt einwandfrei, nun soll in das suchfeld ebenfalls zB ein Nachname eingegeben werden undderjenige soll nun auch gefunden werden.

AW: uppps
15.07.2014 10:03:25
UweD
Auf x kann komplett verzichtet werden.
txtsuche wird bereits als String übergeben...
Private Sub cmdsuchen_Click()
Dim SP1 As Integer, SP2 As Integer
SP1 = 1 ' Erste Suchspalte
SP2 = 3 ' Zweite Suchspalte
If txtsuche = "" Then
MsgBox ("Bitte füllen Sie das Suchfeld!")
Else
Z = ActiveSheet.UsedRange.Rows.Count
temp = 0
For I = 3 To Z
If Cells(I, SP1) = txtsuche Or Cells(I, SP2) = txtsuche Then
temp = 1
Exit For
End If
Next
If temp = 1 Then
zeile = I
Rows(zeile).Select
MsgBox ("Suchbegriff wurde gefunden!")
Else
Rows(1).Select
MsgBox ("Suchbegriff wurde NICHT gefunden!")
End If
End If
Unload UserForm1
End Sub
Gruß UweD

Anzeige
AW: uppps
15.07.2014 10:09:46
UweD
da war ich doch noch zu schnell...
so aber
If Cells(i, SP1) = CStr(txtsuche) Or Cells(i, SP2) = txtsuche Then
Gruß UweD

AW: uppps
15.07.2014 10:17:42
Knoof
Vielen Dank !

35 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige