Registriert seit: 29.06.2016
Version(en): 2010
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
Registriert seit: 11.04.2014
Version(en): '97 bis 2016; 365
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.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!
Grüße aus Norderstedt, Peter
Registriert seit: 29.06.2016
Version(en): 2010
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
Registriert seit: 11.04.2014
Version(en): Office 2007
29.06.2016, 10:47
(Dieser Beitrag wurde zuletzt bearbeitet: 29.06.2016, 11:00 von Steffl.
Bearbeitungsgrund: von Zelle B1 zu C1 geändert u. Ausstieg
)
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
Registriert seit: 11.04.2014
Version(en): '97 bis 2016; 365
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.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!
Grüße aus Norderstedt, Peter
Registriert seit: 29.06.2016
Version(en): 2010
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
Registriert seit: 10.04.2014
Version(en): 2016 + 365
04.07.2016, 12:01
(Dieser Beitrag wurde zuletzt bearbeitet: 04.07.2016, 12:01 von Rabe.)
Hi Daniel,
(29.06.2016, 11: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
|