VBA Suchfunktion?

3 Antworten

Ich weiß nicht, was Du unter aktivieren verstehst, aber das folgende µ wählt die gefundene Zeile aus, und das recht schnell.

Die Setzungen sind im Makro selbst vorgenommen, das ließe sich natürlich besser über Input-boxes machen.

Wenn es das ist, was Du brauchst, kann ich das nachliefern. Auch Msgbox, zB "String in definierter Range nicht gefunden" usw ist möglich, alles zusammen würde das aber auf das 3..5-fache verlängern.

  • Sub FindenZeileAuswählen()
  • 'funktioniert in dieser einfachen Form (ohne großes Drumrum)
  • Dim Was As String, Wo As Range
  • Was = "XX"
  • Set Wo = Range("C3:G9")
  • ActiveSheet.Cells.Find(What:=Was, After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False).EntireRow.Select
  • End Sub

Bitte Rückmeldung, ob es das war oder was sonst es hätte sein sollen.

Angenommen Dein zu suchender Wert steht in A1 und die zu durchsuchende Matrix ist B1:H10, dann diesen Code:

Sub Suchen()
Dim SuchZelle As Range
Dim Bereich As Range
Dim Zelle As Range
Dim Gefunden As Boolean
Set SuchZelle = Range("A1") 'anpassen?!
Set Bereich = Range("B1: H10") 'anpassen?!

For Each Zelle In Bereich
If Zelle.Value = SuchZelle.Value Then
Zelle.Select
Gefunden = True
Exit For
End If
Next Zelle
If Gefunden = False Then MsgBox "Nicht gefunden"
End Sub

Teste mal genau.
Klappt es?

Woher ich das weiß:Berufserfahrung – IT-Administrator (i.R.)

bremer1985 
Beitragsersteller
 16.11.2016, 18:16

Probiere ich morgen und Rückmeldung kommt dann morgen Danke erstmal

1
Iamiam  16.11.2016, 19:45
@bremer1985

ich kämpfe seit langem immer wieder mal mit find, weil das viel schneller ist als For Each Cell in Range. Bei so kleinen Ranges spielt das allerdings kaum eine Rolle.

1

Du kannst mit dem Makrorekorder die manuellen Schritte aufzeichnen. Der normale Suchen-Dialog (Strg + f) sollte hierfür ausreichen. Auch wird dir dann der Selektionsbefehl angezeigt. Du wirst nur noch Feinheiten nacharbeiten müssen.


bremer1985 
Beitragsersteller
 16.11.2016, 11:28

Ich meinte: In dem Fall kann ich das nicht aufzeichnen....

0
Iamiam  16.11.2016, 19:42
@bremer1985

mein Recorder zeichnet den Finden-Dialog nicht auf, sondern nur das Auswählen der Zeile!

0
bremer1985 
Beitragsersteller
 16.11.2016, 11:27

In dem kann ich das nicht aufzeichnen. Das Programm stellt mit einem SAP Programm her in dem es die Arbeiten durchführt und in dem Fall kann ich keine "manuelle" Suchfunktion in Anspruch nehmen.

0