Hallo Christian,
Korrektur, weil ich das Makro nur schnell getestet hatte:
Nicht: str_Suchstring = "a",
sondern: str_Suchstring = txtsuchen.Value
Gruß
Holger
Holger schrieb am 22.12.2008 13:28:35:
Hallo Christian,
dein Makro sucht alle Werte durch, zeigt aber jedes Mal, wenn es nichts findet, die MsgBox. Diese solltest du nach dem Next i einfügen, denn dann wurden alle Zellen geprüft. Else kannst du dann weglassen.
Nun unterbricht dein Makro auch nicht, wenn es etwas gefunden hat. Soll es nach dem ersten Fund stoppen, reicht es, ein Exit sub einzufügen:
dim a
Sub cmdsuchen_Click() 'Button'
str_Suchstring = txtsuchen.Value
a=len(str_Suchstring)
If str_Suchstring = "" Then Exit Sub
i = 0
For i = 1 To 500
If str_Suchstring = left(Cells(i, 5),a) Then 'Anfangsstück
Cells(i, 5).Select
exit sub
End If
Next i
MsgBox ("Keine übereinstimmenden Daten gefunden")
End Sub
Sollen alle betroffenen Zellen bei einem einzigen Durchlauf markiert werden,
dim a,b
b = ""
str_Suchstring = "a"
a = Len(str_Suchstring)
If str_Suchstring = "" Then Exit Sub
i = 0
For i = 1 To 500
If str_Suchstring = Left(Cells(i, 5), a) Then 'Anfangsstück
b = b + "E" + CStr(i) + ","
End If
Next i
If b = "" Then
MsgBox ("Keine übereinstimmenden Daten gefunden")
Else
b = Left(b, Len(b) - 1)
Range(b).Select
End If
Gruß
Holger
Christian schrieb am 20.12.2008 12:30:20:
Schönen guten Tag,
ich habe das Problem, dass ich eine Suchfunktion für eine Kundendatentabelle erstellen möchte, mein Code jedoch nicht funktioniert!
Die Werte (Namen) nach denen gesucht werden soll stehen in der 5. Spalte.
Das Suchkriterium wird in eine Textbox in einer UserForm eingegeben und über einen Button soll dann nach dem Wert gesucht werden.
Ideal wäre natürlich wenn er auch nur nach anfangsbuchstaben sucht und diese dann markiert (auswählt).
Also der Code ist folgender:
Option Explicit
Dim i As Long
Dim str_Suchstring As String
Dim str_Zelleninhalt As String
Sub cmdsuchen_Click() 'Button'
str_Suchstring = txtsuchen.Value
If str_Suchstring = "" Then
Exit Sub
End If
i = 0
For i = 1 To 500
str_Zelleninhalt = Cells(i, 5)
If str_Suchstring = str_Zelleninhalt Then
Cells(i, 5).Select
Else
MsgBox ("Keine übereinstimmenden Daten gefunden")
End If
Next i
End Sub
Ich hoffe jemand kann mir einen Schubs in die richrige Richtung geben, damit der Code funktioniert!!
Vielen Dank schon mal im Voraus und gemütliche Feiertage!!
Mfg Christian |