flexibles suchen nach 2 Kriterien

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
InputBox MsgBox
Bild

Betrifft: flexibles suchen nach 2 Kriterien
von: Gerhard Henneicke
Geschrieben am: 08.12.2003 13:33:53

Hallo Leute,

am 05.12. habe ich schon einmal mein Problem dargestellt und „Nepumuk“ war so nett und hat mir einen Lösungsvorschlag geschickt,
der bei mir leider nicht funktionierte.
Ich habe jetzt mal eine Mustertabelle gehostet. Vielleicht weiß jemand Rat:
Hier nochmals mein Problem:
Mit folgendem Code kann ich eine Tabelle flexibel nach einer Zeichenkette durchsuchen:


Sub Flexibel_zählen()
Dim Anzahl As Double
Dim z As String
z = InputBox("Zu suchende Zeichenfolge eingeben.")
For Each sh In Sheets
Anzahl = Anzahl + Application.WorksheetFunction.CountIf(sh.Range("a:p"), "=" & z)
Next
MsgBox Anzahl
End Sub



Wie bekomme ich es hin, nur zu zählen, wenn eine zweite freiwählbare Zeichenkette in der Zeile vorhanden ist?
Ich hoffe mein Problem ist verständlich geschildert.

Nepumuk’s Vorschlag:
folgendes Programm sucht, wenn du bei der zweiten abfrage nichts eingibst nur nach einem Begriff.
Groß- und Kleinschreibung werden berücksichtigt. Kann aber auch wegfallen.
Option Explicit


Sub Flexibel_zählen()
    Dim lngAnzahl As Long, strSuchbegriff1 As String, strSuchbegriff2 As String
    Dim myRange As Range, myWorksheet As Worksheet
    strSuchbegriff1 = InputBox("Zu suchende erste Zeichenfolge eingeben.", "Eingabe")
    If strSuchbegriff1 <> "" Then
        strSuchbegriff2 = InputBox("Zu suchende zweiten Zeichenfolge eingeben.", "Eingabe")
        For Each myWorksheet In ThisWorkbook.Worksheets
            Set myRange = myWorksheet.Columns("A:P").Find(What:=strSuchbegriff1, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
            If Not myRange Is Nothing Then
                If strSuchbegriff2 = "" Then
                    lngAnzahl = lngAnzahl + 1
                Else
                    Set myRange = myWorksheet.Rows(myRange.Row).Find(What:=strSuchbegriff2, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
                    If Not myRange Is Nothing Then
                        lngAnzahl = lngAnzahl + 1
                    End If
                End If
            End If
        Next
        MsgBox lngAnzahl
    End If
End Sub

Klappt bei mir irgendwie nicht.

Ergebnis ist immer 0, obwohl definitiv mehrfach Kombinationen in der Tabelle sind.

Ich habe mal eine Beispieltabelle geladen. Es wäre super wenn ich eine Lösung dafür bekommen könnte.
https://www.herber.de/bbs/user/2366.xls

Gerhard
Bild


Betrifft: AW: flexibles suchen nach 2 Kriterien
von: Karl-Otto Reimann
Geschrieben am: 08.12.2003 13:55:28

Hello Gerd


Sub FilternUndKopieren()
   Application.ScreenUpdating = False
Sheets("Tabelle1").Select
With Range("A1")
      .AutoFilter Field:=3, Criteria1:="A", Operator:=xlAnd, Criteria2:="B"
      .CurrentRegion.SpecialCells(xlCellTypeVisible).Copy _
         Worksheets("Tabelle2").Range("A1")
End With
Zum Operator gibt's in der Hilfe noch einiges.
Gruß KO
End Sub



Bild


Betrifft: AW: flexibles suchen nach 2 Kriterien
von: Gerhard
Geschrieben am: 08.12.2003 14:25:31

Hallo KO,

danke für den Lösungsvorschlag. Funktioniert bei mir aber auch nicht. Es wird nur
ein Satz in Tabelle2 kopiert. Der Lösungsansatz von Nepumuk geht eher in die gewünschte
Richtung.

Trotzdem Danke für die Mühe!

Gerhard


Bild


Betrifft: Weiß keiner Rat?
von: Gerhard
Geschrieben am: 08.12.2003 15:11:28

Bei Nepumuks Lösung wird die Schleife nur einmal durchlaufen. Ich vermute hier das
Problem.

Gerhard


Bild


Betrifft: AW: flexibles suchen nach 2 Kriterien
von: Karl-Otto Reimann
Geschrieben am: 08.12.2003 15:24:46

Mein Bsp suchte in der 3. Spalte nach 2 Kriterien.
Suchst Du vielleicht 2 Kriterien in 2 Spalten?


Bild


Betrifft: AW: flexibles suchen nach 2 Kriterien
von: gerhard
Geschrieben am: 08.12.2003 15:43:09

Ich durchsuche eine ganze Tabelle.
Jeweils die komplette Zeile, die Kriterien können theoretisch in x-beliebigen Zellen stecken.

Ich möchte z.B. wissen wie oft kommt ein Datensatz mit 1J12J4 und X7X1 vor?

Gruß
Gerhard


Bild

Beiträge aus den Excel-Beispielen zum Thema " flexibles suchen nach 2 Kriterien"