Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Suchfunktion per VBA

Betrifft: Suchfunktion per VBA von: Alex
Geschrieben am: 27.08.2004 11:47:34

Hallo zusammen,

ich habe ein Problem. Ich habe mir aus dem Archiv ein Macro runtergeladen, welches eine Suchfunktion erzeugt.Das funktioniert auch super, nur wenn ich einen Wert eingebe der in der Tabelle nicht exisitiert erscheint ein Dialogfeld:

Laufzeitfehler 91 (Als nicht VBAler ein nichtselberbehebbares Hindernis :-))


Wie kann ich es anstellen das wenn ein Suchbegriff eingegeben wird der nicht existiert nur eine Fehlermeldung kommt wie z.B. der gesuchte Wert ist nicht in der Liste.
Nicht aber dieses Dialogfeld erscheint.

Ich kann leider kein VBA aber ich hoffe das Problem einigermaßen beschrieben zu haben.

Hier ist der Code

'DieseArbeitsmappe

Private Sub Workbook_BeforeClose(Cancel As Boolean)
DeleteSearchBar
End Sub


Private Sub Workbook_Open()
CreateSearchBar
End Sub


'allgemeines Modul
Sub CreateSearchBar()
'Menüleiste mit Textfeld und Button zum Suchen
Dim oBar As CommandBar
Dim oCombo As CommandBarControl
Dim oBtn As CommandBarButton
DeleteSearchBar
With Application.CommandBars.Add(Name:="Suchen")
.Visible = True
.Position = msoBarTop
Set oCombo = .Controls.Add(Type:=msoControlEdit, temporary:=True)
Set oBtn = .Controls.Add(Type:=msoControlButton, temporary:=True)
End With
With oCombo
.OnAction = "Search"
.Width = 150
End With
With oBtn
.Caption = "Suchen"
.OnAction = "Search"
.Style = msoButtonIconAndCaption
.FaceId = 141
End With
End Sub

Sub Search()
Dim strSrch As String
strSrch = Application.CommandBars("Suchen").Controls(1).Text
If strSrch = "" Then Exit Sub
Cells.Find(What:=strSrch, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
False).Activate
End Sub
Sub DeleteSearchBar()
On Error Resume Next
Application.CommandBars("Suchen").Delete
End Sub

Vielen Dank für jegliche Hilfe

Alex
  


Betrifft: AW: Suchfunktion per VBA von: wolfgang
Geschrieben am: 27.08.2004 11:50:43

Hi Alex,

versuchs mal hiermit:

Sub Search()
Dim strSrch As String
strSrch = Application.CommandBars("Suchen").Controls(1).Text
If strSrch = "" Then Exit Sub
On Error GoTo errhandler
Cells.Find(What:=strSrch, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
False).Activate
errhandler:
If Err.Number = 91 Then
MsgBox ("Ihr Suchbegriff kontte nicht gefunden werden")
Else: End If
End Sub


Gruss
wolfgang


  


Betrifft: oder so von: P@ulchen
Geschrieben am: 27.08.2004 11:55:10



Sub Search()
Dim strSrch As String
Dim xFind
strSrch = Application.CommandBars("Suchen").Controls(1).Text
If strSrch = "" Then Exit Sub
Set xFind = Cells.Find(What:=strSrch, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
False)
If Not xFind Is Nothing Then
    xFind.Activate
Else
    MsgBox "Suchbegriff wurde nicht gefunden !"
End If
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5




Gruß aus Leipzig
P@ulchen

Das Forum lebt auch von den Rückmeldungen !


  


Betrifft: AW: Suchfunktion per VBA von: alex
Geschrieben am: 27.08.2004 11:58:16

Hallo Wolfgang,

vielen Dank!! Klappt auf Anhieb super!!!!

Ich bin echt beeindruckt wie schnell man bei euch Hilfe bekommt.

Gruß

Alex