"Suche" Makro
#1
Hallo zusammen,

ich bin neu hier und kenne mich in der Welt von Makros und VBA nur wenig aus.
Ich bin gerade dabei eine Art Lexikon zu erstellen und brauche ein Makro, dass die Suche nach einem Begriff oder einer Begriffbeschreibung erleichtert.

In Spalte B (ab Zeile 3) stehen die Begriffe und in Spalte C (ab Zeile 3) die dazugehörigen Beschreibungen.
Nun möchte ich in der Zelle B1 einen Button, der das Makro Suche auslöst und den Begriff, der in Zelle C1 eingeben wurde sucht.

Ich habe bereits folgendes:

Sub Suche()

    Dim RaFound As Range
    Dim LoLetzte As Long
    Dim sSearch As String
    Do
        sSearch = InputBox("Suchbegriff:", , "test")
        If sSearch = "" Then Exit Sub
        LoLetzte = IIf(IsEmpty(Range("C65536")), Range("C65536").End(xlUp).Row, 65536)
        Set RaFound = Range("B3:B" & LoLetzte).Find(sSearch, Range("B" & LoLetzte), , xlPart, , _
xlNext)
    '   kompletter Vergleich und Inhalt
    '    Set RaFound = .Range(.Cells(2, 10), .Cells(5753, 10)).Find(ActiveSheet.Cells(I, 54), _
    '        .Cells(5753, 10), xlValues , xlWhole, , xlNext)
        If Not RaFound Is Nothing Then
            Rows(RaFound.Row).Select
            Exit Do
        End If
    Loop
    Set RaFound = Nothing
End Sub


Ich möchte aber nicht diese "Inputbox" benutzen. Des Weiteren wäre es gut, wenn es die Möglichkeit der "Weitersuche" gibt und falls ein Begriff nicht vorhanden ist, eine Art "Pop-Up" erscheint mit der Nachricht "Begriff nicht vorhanden".

Ich hoffe jemand kann mir weiterhelfen.

Vielen Dank und viele Grüße

Carva
Top
#2
Hallo,

Zitat:Ich möchte aber nicht diese "Inputbox" benutzen. 

... und wie stellst Du Dir denn dann die Eingabe eines Suchbegriffes vor, wenn es keine Inputbox sein soll?
Denn irgendwie muß ja Dein Wunsch-PopUp dazu gebracht werden, aufzupoppen und anzuzeigen, daß der
Suchbegriff nicht vorhanden ist, oder was auch immer er anzeigen soll.
Top
#3
Hallo [b]Käpt'n Blaubär,

[/b]wie bereits beschrieben, möchte ich gerne die Eingabe des Suchbegriff in der Zelle C1 vornehmen.

Viele Grüße

Carva

P.S. ein entsprechendes Makro habe ich. Ich bin leider nicht in Lage die beiden MAkros zu kombinieren, sodass ich das habe was ich benötige

Sub Suche()

     Dim Titel As String, C As Object
    
     Begriff = Range("C1")
     If Trim(Begriff) = "" Then Exit Sub
    
     Set C = ActiveSheet.Range(Cells(2, 1), Cells(Rows.Count, Columns.Count)).Find(What:=Titel, LookAt:=xlPart)
    
     If Not C Is Nothing Then
          C.Select
          MsgBox "Vorhanden"
     Else
          MsgBox "Nicht vorhanden"
     End If
End Sub
Top
#4
Hallo,

wenn der Button aus der ActiveX-SteuerelementBox ist, gehört der Code in die Tabelle, wo der Button ist.

Code:
Private Sub CommandButton1_Click()

   Dim RaFound As Range
   Dim LoLetzte As Long
   Dim sSearch As String
   Do
'        sSearch = InputBox("Suchbegriff:", , "test")
       sSearch = Range("C1").Value
       If sSearch = "" Then Exit Sub
       LoLetzte = IIf(IsEmpty(Range("C65536")), Range("C65536").End(xlUp).Row, 65536)
       Set RaFound = Range("B3:B" & LoLetzte).Find(sSearch, Range("B" & LoLetzte), , xlPart, , _
xlNext)
   '   kompletter Vergleich und Inhalt
   '    Set RaFound = .Range(.Cells(2, 10), .Cells(5753, 10)).Find(ActiveSheet.Cells(I, 54), _
   '        .Cells(5753, 10), xlValues , xlWhole, , xlNext)
       If Not RaFound Is Nothing Then
           Rows(RaFound.Row).Select
           Exit Do
       Else
           MsgBox "Der Begriff " & sSearch & " ist nicht vorhanden."
            Exit Do
       End If
   Loop
   Set RaFound = Nothing
End Sub
Gruß Stefan
Win 10 / Office 2016
Top
#5
Hallo,

Zitat:Ich bin leider nicht in Lage die beiden MAkros zu kombinieren, sodass ich das habe was ich benötige

welche zwei Makros? Ich sehe nur eins.
Top
#6
Hallo Peter,

in meinem ersten Beitrag ist ein Code zu einem Suchmakro und in meiner Antwort ist ein anderer Code.
Für mich sind es zwei Makros oder ein Makro mit zwei verschiedenen Inhalten...



Die Frage ist ja auch eher, ob es möglich ist das zu bauen was ich in meinem Eröffnungspost beschrieben habe und nicht wie viele Makros, Codes o.ä. hier nun sind

Viele Grüße

Daniel
Top
#7
Hi Daniel,

(29.06.2016, 12:13)Carva schrieb: Die Frage ist ja auch eher, ob es möglich ist das zu bauen was ich in meinem Eröffnungspost beschrieben habe und nicht wie viele Makros, Codes o.ä. hier nun sind

die Lösung für die nicht gewünschte Inputbox ist folgende Zeile, anstelle Deiner eigenen:

Code:
'
       sSearch = Range("C1")    'ohne Inputbox
'       sSearch = InputBox("Suchbegriff:", , "test")     'mit Inputbox

verknüpft:
Option Explicit

Sub Suche()
   
   Dim RaFound As Range
   Dim LoLetzte As Long
   Dim sSearch As String
   Do
      sSearch = Range("C1")                   'ohne Inputbox 
      'sSearch = InputBox("Suchbegriff:", , "test")     'mit Inputbox 
      If sSearch = "" Then Exit Sub
      LoLetzte = IIf(IsEmpty(Range("C65536")), Range("C65536").End(xlUp).Row, 65536)
      Set RaFound = Range("B3:B" & LoLetzte).Find(sSearch, Range("B" & LoLetzte), , xlPart, , _
          xlNext)
      '   kompletter Vergleich und Inhalt 
      '    Set RaFound = .Range(.Cells(2, 10), .Cells(5753, 10)).Find(ActiveSheet.Cells(I, 54), _
          '        .Cells(5753, 10), xlValues , xlWhole, , xlNext) 
      If Not RaFound Is Nothing Then
         Rows(RaFound.Row).Select
         MsgBox "Vorhanden"
         Exit Do
      Else
         MsgBox "Nicht vorhanden, bitte Suchbegriff anpassen!"
         sSearch = InputBox("Suchbegriff:", , sSearch)     'mit Inputbox 
         Range("C1") = sSearch
      End If
   Loop
   Set RaFound = Nothing
End Sub
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste