HERBERS Excel-Forum - das Archiv
Select und Überflüssiges
Rudolf

Hallo an das Forum,
ich benötige mal wieder euren Rat.
Diese Aufzeichnung mit dem Recorder lässt sich doch bestimmt eleganter darstellen.
Gesucht werden soll der erste Buchstabe eines Namens in Spalte B5:B400, A*,B*,C*.......Y*,
jederm Buchstaben habe ich eine Autoform zugeordnet.
Wenn ich also z.B auf die Autof. mit (H) klicke, soll der ersten Namen mit (H******) Selectiert werden.
Das klappt auch alles. Elegant ist das aber sicher nicht.
Kann/möchte mir jemand Helfen?
Viel Dank
Sub HHH()
On Error GoTo Meldung
Range("B5:B400").Select
Selection.Find(What:="H*", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
ActiveCell.Select
GoTo Ende
Meldung:
Range("A4").Select
MsgBox "Wert wurde nicht gefunden!"
Ende:
End Sub

AW: Select und Überflüssiges
IngGi

Hallo Rudolf,
so würde ich das wohl machen:
Sub HHH()
Dim rng As Range
Set rng = Range("B5:B400").Find(What:="H*")
If rng Is Nothing Then
Range("A4").Select
MsgBox "Wert wurde nicht gefunden!"
Else
rng.Select
End If
End Sub
Gruß Ingolf
AW: fehlende Parameter bei FIND
Daniel

HI
das so start zu verkürzen, ist ein bisschen gefährlich, denn wenn für .FIND die Parameter LookIn, LookAt, SearchFormat nicht angegeben werden, dann werden die Einstellungen der letzten Suche verwendet, und das kann dann schon zu unerwünschten Ergebnissern führen, wenn die anders waren als man es jetzt gerade braucht.
Daher ist es besser, diese immer mit anzugeben.
Gruß, Daniel
ps. SerachFormat spare ich mir meisten, da verändert man nicht so oft was, die anderen Parameter werden öfters mal verstellt.
Gruß, Daniel
AW: fehlende Parameter bei FIND
IngGi

Hallo zusammen,
stimmt Daniel, an diese Besonderheit der Find-Methode hatte ich gar nicht mehr gedacht. Der Parameter LookAt:=xlWhole sollte unbedingt mit angegeben werden. Auf LookIn könnte man verzichten, wenn man ganz sicher ist, dass im durchsuchten Bereich keine Formeln vorkommen. SearchFormat gehört aber laut Excel-VBA-Hilfe nicht zu den gespeicherten Parametern, sondern SearchOrder. Auf SearchOrder kann man hier verzichten, da ja nur eine Spalte durchsucht wird und die Matrix somit eindimensional ist.
Gruß Ingolf
AW: fehlende Parameter bei FIND
Rudolf

Vielen Dank, für die schnelle Hilfe, an Ingolf und Daniel.
Es klappt wunderbar
Schönes Wochenende, auch an den Rest des tollen Forums
Rudolf
AW: Select und Überflüssiges
Daniel

HI
naja, man kann immer statt
Range("xxx").Select
Selection.Value =""
schreiben:
Range("xxx").Value = ""
weiteres erfährst du hier
http://www.online-excel.de/excel/singsel_vba.php?f=78
Gruß, Daniel