Microsoft Excel

Herbers Excel/VBA-Archiv

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

Suchbegriff aktivieren

Betrifft: Suchbegriff aktivieren von: philipp b
Geschrieben am: 12.10.2020 17:42:51

Guten Tag,
ich habe folgendes Makro:

Public Sub Suchen()
Dim strSuchbegriff As String, loLetzte As Long
strSuchbegriff = InputBox("Bitte Suchbegriff eingeben", "Namen Suchen und Filtern nach")

If Not strSuchbegriff = vbNullString Then
    loLetzte = Cells(Rows.Count, Selection.Column).End(xlUp).Row
    Range(Cells(2, Selection.Column), Cells(loLetzte, Selection.Column)) _
            .AutoFilter field:=1, Criteria1:=strSuchbegriff
End If
End Sub
Es sollte der Suchbegriff nur in Spalte A gesucht werden und anschließend der 1. gefundene Adresse
anklickt werden.

mfg
philipp

Betrifft: AW: Suchbegriff aktivieren
von: Hajo_Zi
Geschrieben am: 12.10.2020 17:46:29

Halo philip,


Suchen ist Find)()
        Set Rafound = Range("C1:C" & LoLetzte).find(sSearch, Range("C" & LoLetzte), , xlPart, ,  _
xlNext)
        ' kompletter Vergleich und Inhalt
        'Set RaFound = Range("C1:C" & Loletzte).Find(sSearch, Range("C" & Loletzte), , xlWhole,  _
, xlNext)
        'Set Rafound1 = Columns(1).Find("Erledigt", Range("A" & Rows.Count), xlFormulas, _
            '                    xlWhole, , xlNext)
        If Not Rafound Is Nothing Then
            MsgBox Rafound.Row
        End If

' xlPart enthalten
' xlWhole kompletter Vergleich


GrußformelHomepage

Betrifft: Fehlermeldung
von: philipp b
Geschrieben am: 12.10.2020 17:57:33

Guten Tag Hajo,
leider Fehlermeldung Laufzeitfehler 1004
Habe so reingesetzt:
Dim Rafound1, Rafound
Dim sSearch
Dim loletzte As Long

Set Rafound = Range("C2:C" & loletzte).Find(sSearch, Range("C" & loletzte), , xlPart, , _
xlNext)
' kompletter Vergleich und Inhalt
'Set RaFound = Range("C1:C" & Loletzte).Find(sSearch, Range("C" & Loletzte), , xlWhole, _
, xlNext)
'Set Rafound1 = Columns(1).Find("Erledigt", Range("A" & Rows.Count), xlFormulas, _
' xlWhole, , xlNext)
If Not Rafound Is Nothing Then
MsgBox Rafound.Row
End If
' xlPart enthalten
' xlWhole kompletter Vergleich

kann man mein Makro nicht entsprechend verändern ?

mfg
philipp

Betrifft: AW: Fehlermeldung
von: Hajo_Zi
Geschrieben am: 12.10.2020 18:00:17

Hallo philipp,

Loletzte ist 0 und Zeile 0 gibt es nicht.

Zu Deiner Datei kann ich nichts schreiben, was wohl daran liegt das ich nicht auf fremde Rechner schaue.Ich baue keine Datei nach.

Sollte die Datei verlinkt werden?

Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten
http://www.ms-office-forum.de/forum/showthread.php?t=322895
änderrn.

Bilder lade ich mir nicht runter, da Excel damit nichts anfangen kann.

http://www.excel-ist-sexy.de/bilder-statt-datei/

Hochgeladene Bilder können zwar als solche in Excel importiert werden, sind jedoch bei der Lösung von Problemen nicht sehr hilfreich, da man die eigentlichen Daten nicht ohne große und zeitraubende Umwege direkt in die Tabelle übertragen kann.

Das ist nur meine Meinung zu dem Thema.

Gruß Hajo

Betrifft: AW: Fehlermeldung
von: philipp b
Geschrieben am: 12.10.2020 18:03:44

Hallo Hajo,
hab das nicht verstanden ?
Warum Muster, habe doch das Makro gesendet.

mfg
philipp

Betrifft: AW: Suchbegriff aktivieren
von: Nepumuk
Geschrieben am: 12.10.2020 18:50:51

Hallo philipp,

so ok?

Public Sub Suchen()
    
    Dim strSuchbegriff As String
    
    strSuchbegriff = InputBox("Bitte Suchbegriff eingeben", "Namen Suchen und Filtern nach")
    
    If Not strSuchbegriff = vbNullString Then
        
        Rows(1).AutoFilter Field:=1, Criteria1:=strSuchbegriff
        
        If Cells(1, 1).End(xlDown).Row <> Rows.Count Then Cells(1, 1).End(xlDown).Select
        
    End If
End Sub

Gruß
Nepumuk

Betrifft: AW: Suchbegriff aktivieren ja aber noch eine Frage
von: philipp b
Geschrieben am: 12.10.2020 18:58:21

Guten Abend Nepumuk,
Danke das klappt, allerdings wird der bei 2 gesuchten Zeilen die 2.selectiert.
Was muss ich ändern, damit von den gesuchten der 1. Wert selectiert wird ?

mfg
philipp

Betrifft: AW: Suchbegriff aktivieren ja aber noch eine Frage
von: Nepumuk
Geschrieben am: 12.10.2020 19:13:40

Hallo philipp,

so besser?

Public Sub Suchen()
    
    Dim strSuchbegriff As String
    
    strSuchbegriff = InputBox("Bitte Suchbegriff eingeben", "Namen Suchen und Filtern nach")
    
    If Not strSuchbegriff = vbNullString Then
        
        Rows(1).AutoFilter Field:=1, Criteria1:=strSuchbegriff
        
        With ActiveSheet.AutoFilter.Range.SpecialCells(xlCellTypeVisible)
            
            If .Areas(1).Rows.Count > 1 Then
                
                .Areas(1).Cells(2, 1).Select
                
            Else
                
                If .Areas.Count > 1 Then .Areas(2).Cells(1, 1).Select
                
            End If
        End With
    End If
End Sub

Gruß
Nepumuk

Betrifft: Ja Nepumuk aber die Zeile 2
von: philipp b
Geschrieben am: 12.10.2020 19:25:22

Hallo Nepumuk,
danke. Aber es wird die Zeile 2 ausgeblendet, bei meinem Makro nicht.

Ich würde gern ein 2. Suchmakro haben so wie Du es gemacht hast aber in der kompl.
Datenbank suchen. Datenbank habe ich 20 Spalten.

mfg
philipp

Betrifft: Zeile 2 klappt ! Habe geändert.
von: philipp b
Geschrieben am: 12.10.2020 19:27:08



Betrifft: AW: Ja Nepumuk aber die Zeile 2
von: Nepumuk
Geschrieben am: 12.10.2020 19:27:33

Hallo philipp,

wenn deine Daten erst in Zeile 3 beginnen, dann so:
        Rows(2).AutoFilter Field:=1, Criteria1:=strSuchbegriff

Gruß
Nepumuk

Betrifft: Danke habe genau so gemacht
von: philipp b
Geschrieben am: 12.10.2020 19:29:41

Hallo Nepumuk,
was muss ich ändern damit in der gesamten Datenbank gesucht wird ?

mfg
philipp

Betrifft: AW: Danke habe genau so gemacht
von: Nepumuk
Geschrieben am: 12.10.2020 19:42:31

Hallo philipp,

so?

Public Sub Suchen()
    
    Dim strSuchbegriff As String
    Dim objCell As Range
    
    strSuchbegriff = InputBox("Bitte Suchbegriff eingeben", "Namen Suchen und Filtern nach")
    
    If Not strSuchbegriff = vbNullString Then
        
        If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
        
        Set objCell = Cells.Find(What:=strSuchbegriff, After:=Cells(1, 1), _
            LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)
        
        If Not objCell Is Nothing Then
            
            Rows(2).AutoFilter Field:=objCell.Column, Criteria1:=strSuchbegriff
            
            With ActiveSheet.AutoFilter.Range.SpecialCells(xlCellTypeVisible)
                
                If .Areas(1).Rows.Count > 1 Then
                    
                    .Areas(1).Cells(2, objCell.Column).Select
                    
                Else
                    
                    If .Areas.Count > 1 Then .Areas(2).Cells(1, objCell.Column).Select
                    
                End If
            End With
            
            Set objCell = Nothing
            
        End If
    End If
End Sub

Gruß
Nepumuk

Betrifft: Einfach Klasse, Nepumuk ! Danke -)
von: philipp b
Geschrieben am: 12.10.2020 19:44:41