Thema Datum  Von Nutzer Rating
Antwort
23.07.2017 10:48:14 Rudolf
NotSolved
23.07.2017 11:26:44 Werner
NotSolved
23.07.2017 11:44:18 Rudolf
NotSolved
24.07.2017 13:15:03 Werner
NotSolved
25.07.2017 09:48:21 Rudolf
NotSolved
25.07.2017 11:52:15 Werner
NotSolved
29.07.2017 23:08:49 Rudolf
NotSolved
Blau Kriterien für Spezialfilter aus Textbox?
30.07.2017 10:01:48 Gast41718
NotSolved

Ansicht des Beitrags:
Von:
Gast41718
Datum:
30.07.2017 10:01:48
Views:
462
Rating: Antwort:
  Ja
Thema:
Kriterien für Spezialfilter aus Textbox?

Hallo Rudolf,

es wird das Filterergebnis, ohne die Überschriftenzeile, in "Tabelle2" kopiert. Das Tabellenblatt muss schon angelegt sein, sonst läuft der Code in einen Fehler.

Private Sub CommandButton1_Click()
Dim boFund As Boolean
Dim loLetzte As Long
Dim strNummerA As String
Dim strNummerB As String
Dim strVorname As String
Dim strNachname As String
Dim strWohnort As String
Dim strGeschlecht As String

Application.ScreenUpdating = False

With Worksheets("Tabelle1") 'anpassen
    '## Ermitteln der letzten belegten Zelle in Spalte A
    loLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row
    '## Variablen mit den Daten aus den Textboxen füllen
    strNummerA = Me.NummerA
    strNummerB = Me.NummerB
    strVorname = Me.Vorname
    strNachname = Me.Nachname
    strWohnort = Me.Wohnort
    strGeschlecht = Me.Geschlecht
    '## Wenn gefiltert, dann alle Daten anzeigen
        If .AutoFilterMode Then .AutoFilter.ShowAllData
            '## Autofilter setzen
            .Range("$A$1:$F$" & loLetzte).AutoFilter
                '## Wenn Werte in den Variablen, dann danach filtern
                If Not strNummerA = vbNullString Then
                    .Range("$A$1:$F$" & loLetzte).AutoFilter Field:=1, Criteria1:=strNummerA
                    boFund = True
                End If
                If Not strNummerB = vbNullString Then
                    .Range("$A$1:$F$" & loLetzte).AutoFilter Field:=2, Criteria1:=strNummerB
                    voFund = True
                End If
                If Not strVorname = vbNullString Then
                    .Range("$A$1:$F$" & loLetzte).AutoFilter Field:=3, Criteria1:=strVorname
                    boFund = True
                End If
                If Not strNachname = vbNullString Then
                    .Range("$A$1:$F$" & loLetzte).AutoFilter Field:=4, Criteria1:=strNachname
                    boFund = True
                End If
                If Not strWohnort = vbNullString Then
                    .Range("$A$1:$F$" & loLetzte).AutoFilter Field:=5, Criteria1:=strWohnort
                    boFund = True
                End If
                If Not strGeschlecht = vbNullString Then
                    .Range("$A$1:$F$" & loLetzte).AutoFilter Field:=6, Criteria1:=strGeschlecht
                    boFund = True
        End If
        
        If Worksheets("Tabelle1").AutoFilter.Range.Columns(1) _
            .SpecialCells(xlCellTypeVisible).Cells.Count = 1 Then
            MsgBox "Suchbegriff nicht gefunden"
            If .AutoFilterMode Then .AutoFilterMode = False
            Exit Sub
        Else
            With .AutoFilter.Range
                If boFund Then
                    .Resize(.Rows.Count - 1).Offset(1, 0).Copy
                    Worksheets("Tabelle2").Cells(1, 1).PasteSpecial xlPasteValues
                    Application.CutCopyMode = False
                    boFund = False
                End If
            End With
        End If

    If .AutoFilterMode Then .AutoFilterMode = False
End With

'## Userform schließen
Unload Me
Application.ScreenUpdating = True
End Sub

 

Gruß Werner


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
23.07.2017 10:48:14 Rudolf
NotSolved
23.07.2017 11:26:44 Werner
NotSolved
23.07.2017 11:44:18 Rudolf
NotSolved
24.07.2017 13:15:03 Werner
NotSolved
25.07.2017 09:48:21 Rudolf
NotSolved
25.07.2017 11:52:15 Werner
NotSolved
29.07.2017 23:08:49 Rudolf
NotSolved
Blau Kriterien für Spezialfilter aus Textbox?
30.07.2017 10:01:48 Gast41718
NotSolved