Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1244to1248
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
In Tabelle suchen - wie mit einer Suchmaschine
Mark

Hallo,
ich möchte gerne eine größere Tabelle nach Suchbegriffen durchforsten. Hier im Beispiel ist die Tabelle kleiner. In einem Textfeld möchte ich den Suchbegriff eingeben, z.B. „Maus“.
Dann möchte ich per Kontrollkästchen die Suchspalte (es muss die gesamte Spalte durchsucht werden) vorgeben. Groß- und Kleinschreibung soll hierbei nicht unterschieden werden.
Die Sucherergebnisse sollen nach dem Klick auf den CommandButton in einer Liste unterhalb der Suchoptionen aufgelistet werden. Im Prinzip soll es wie bei einer Suchmaschine im Internet funktionieren.
Kann mir jemand helfen, wie man das irgendwie in VBA programmieren kann!
Danke für jeden Beitrag!
-Mark-
Zum besseren Verständnis habe ich Datei hochgeladen:
https://www.herber.de/bbs/user/78202.xlsm

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: In Tabelle suchen - wie mit einer Suchmaschine
04.01.2012 10:17:46
Thomas
Ich habe eine komplette Lösung ... war aber viel Arbeit.
Wollen Sie erst in VBA einsteigen oder haben Sie schon Vorkenntnisse?
VG Thomas
AW: In Tabelle suchen - wie mit einer Suchmaschine
04.01.2012 10:38:25
Mark
Hallo,
ich habe vor ein paar Jahren mal etwas mehr mit VBA gemacht. Seitdem leider nicht mehr und bin halt entsprechend aus der Übung. VBA-Code lesen geht eigentlich noch ganz gut. Schreiben oder anpassen nur bis zu einem gewissen Grad.
Wahrscheinlich habe ich meine Frage missverständlich ausgedrückt. Ich möchte nicht dass sich einer stundenlang hinsetzt und den Code programmiert. Vielmehr suche ich Ideen (Bausteine), wie man so etwas realisieren kann.
Gruß
-Mark-
Anzeige
AW: In Tabelle suchen - wie mit einer Suchmaschine
04.01.2012 11:06:09
Josef

Hallo Mark,
in das Modu von Tabelle "SUCHEN".
' **********************************************************************
' Modul: Tabelle3 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub CommandButton2_Click()
  Dim rng As Range, rngF As Range, rngRet As Range
  Dim lngIndex As Long, lngRows() As Long
  Dim strFirst As String
  
  On Error GoTo ErrExit
  
  With Application
    .ScreenUpdating = False
    .EnableEvents = False
    .Calculation = xlCalculationManual
    .DisplayAlerts = False
  End With
  
  Redim lngRows(0)
  
  If Range("C5") <> "" Then
    Range("A15").CurrentRegion.Offset(1, 0).Clear
    With Sheets("Archiv")
      If CheckBox1 Then Set rngF = .Columns(1)
      If CheckBox2 Then
        If rngF Is Nothing Then
          Set rngF = .Columns(2)
        Else
          Set rngF = Union(rngF, .Columns(2))
        End If
      End If
      If CheckBox3 Then
        If rngF Is Nothing Then
          Set rngF = .Columns(3)
        Else
          Set rngF = Union(rngF, .Columns(3))
        End If
      End If
      Set rng = rngF.Find(Me.Range("C5"), LookIn:=xlValues, LookAt:=xlPart, MatchCase:=False)
      If Not rng Is Nothing Then
        strFirst = rng.Address
        Do
          If IsError(Application.Match(rng.Row, lngRows, 0)) Then
            Redim Preserve lngRows(lngIndex)
            lngRows(lngIndex) = rng.Row
            lngIndex = lngIndex + 1
            If rngRet Is Nothing Then
              Set rngRet = .Range(.Cells(rng.Row, 1), .Cells(rng.Row, 3))
            Else
              Set rngRet = Union(rngRet, .Range(.Cells(rng.Row, 1), .Cells(rng.Row, 3)))
            End If
          End If
          Set rng = rngF.FindNext(rng)
        Loop While Not rng Is Nothing And strFirst <> rng.Address
      End If
    End With
    If Not rngRet Is Nothing Then
      rngRet.Copy Me.Range("B16")
      With Me.Range("A16").Resize(lngIndex, 1)
        .Formula = "=ROW(A1)"
        .Value = .Value
        .Borders(xlEdgeLeft).LineStyle = xlContinuous
        .Borders(xlEdgeRight).LineStyle = xlContinuous
        .Borders(xlEdgeTop).LineStyle = xlContinuous
        .Borders(xlEdgeBottom).LineStyle = xlContinuous
        .Borders(xlInsideVertical).LineStyle = xlContinuous
        .Borders(xlInsideHorizontal).LineStyle = xlContinuous
      End With
    End If
  End If
  
  ErrExit:
  
  With Err
    If .Number <> 0 Then
      MsgBox "Fehler in Prozedur:" & vbTab & "Sub 'CommandButton2_Click'" & vbLf & String(40, "=") & vbLf & vbLf & _
        IIf(Erl, "Fehler in Zeile:" & vbTab & Erl & vbLf & vbLf, "") & "Fehlernummer:" & vbTab & _
        .Number & vbLf & vbLf & "Beschreibung:" & vbTab & .Description & vbLf, vbExclamation, "Fehler in Modul - Tabelle3"
      .Clear
    End If
  End With
  
  On Error GoTo 0
  
  With Application
    .ScreenUpdating = True
    .EnableEvents = True
    .Calculation = xlCalculationAutomatic
    .DisplayAlerts = True
  End With
  
  Set rng = Nothing
  Set rngF = Nothing
  Set rngRet = Nothing
End Sub



« Gruß Sepp »

Anzeige
AW: In Tabelle suchen - wie mit einer Suchmaschine
04.01.2012 14:49:41
Mark
Hallo Sepp,
der Code funktioniert sehr gut.
Ich denke, ich habe den größten Teil sogar verstanden, jedenfalls kann ich es erweitern (also weitere Checkboxen einbauen) und auf meine Problem übertragen.
Vielen Dank!
Gruss
-Mark-

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige