Frage von bremer1985, 72

VBA Suchfunktion?

Hey.
Ich brauch mal euren Rat.
Ich möchte in einer festgelegten Matrix nach einem Wert suchen und sobald ich die Zelle mit dem Wert gefunden habe möchte ich diese Zeile aktivieren.

Ehrlich gesagt habe ich keine wie diese Funktion in VBA auszusehen.

Bitte helft mir.

Expertenantwort
von Oubyi, Community-Experte für Excel, 38

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?

Kommentar von bremer1985 ,

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

Kommentar von Iamiam ,

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.

Expertenantwort
von Iamiam, Community-Experte für Excel, 45

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.

Expertenantwort
von Suboptimierer, Community-Experte für Excel, 46

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.

Kommentar von bremer1985 ,

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.

Kommentar von bremer1985 ,

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

Kommentar von Iamiam ,

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

Keine passende Antwort gefunden?

Fragen Sie die Community