[[20140318135215]] 『オートフィルターについて』(サラリーマン) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『オートフィルターについて』(サラリーマン)

見出しの件について教えてください。
検索したいモノが無いときに出ないのではなメッセージボックスで「該当無し」と出るようにならないかと考えています。
事例が見つからないので教えていただけないでしょうか。
よろしくお願いします。
Sub AotoFil()

    Range("C2:M2").Select
    Selection.AutoFilter
    Selection.AutoFilter Field:=8, Criteria1:=Range("J1").Value
End Sub

< 使用 Excel:Excel2003、使用 OS:WindowsXP >


 Sub AotoFil()

     If Application.CountIf(Range("J3:J10000"), Range("J1")) = 0 Then
        MsgBox "該当なし"
     Else
        Range("C2:M2").Select
        Selection.AutoFilter
        Selection.AutoFilter Field:=8, Criteria1:=Range("J1").Value
     End If

 End Sub

 でどうでしょうか?
(se_9) 2014/03/18(火) 14:11

se_9さん
ありがとうございます。
朝からずーっと考えていたとおりの動きです。
感謝!!
(サラリーマン) 2014/03/18(火) 14:19

 ちょっと修正しようかと思ったら解決済に・・・。でも一応載せておきます。

 検索する文字列がない場合オートフィルタを解除したければ
 If Application.CountIf(Range("J3:J10000"), Range("J1")) = 0 Then
 の上の行にActiveSheet.AutoFilterMode = Falseを足してください。
(se_9) 2014/03/18(火) 14:24

se_9さん
追加説明頂きありがとう御座います。
その後2カ所、抽出することになり下のコードにしました。
Q1とR1が両方存在しないときは "該当なし"と、しなければダメなことが分かりました。
どうすればよいのでしょうか?
Sub AotoFil()
     ActiveSheet.AutoFilterMode = False
       If Application.CountIf(Range("L2:L10000"), Range("Q1")) = 0 Then
            MsgBox "該当なし"
            Range("a1").AutoFilter
         Else
            Range("A1:L1").Select
            Selection.AutoFilter
            Selection.AutoFilter Field:=12, Criteria1:=Range("Q1").Value
       End If     
        If Application.CountIf(Range("C2:C10000"), Range("R1")) = 0 Then
            MsgBox "該当なし"
            Range("a1").AutoFilter        
    Else
          Selection.AutoFilter Field:=3, Criteria1:=Range("R1").Value
     End If
End Sub

(サラリーマン) 2014/03/20(木) 11:44


 各列にそろって存在する行があるか 調べてみて下さい。

 ご使用のエクセルが2003と言う事なので、SUMPRODUCT関数を使って。。。

    ActiveSheet.AutoFilterMode = False
    If Evaluate("SUMPRODUCT((L2:L10000=" & Range("Q1").Value & ")*(C2:C10000=" & Range("R1").Value & "))") = 0 Then
        MsgBox "該当なし"
    Else
        With Range("A1:L1")
            .AutoFilter Field:=12, Criteria1:=Range("Q1").Value
            .AutoFilter Field:=3, Criteria1:=Range("R1").Value
        End With
    End If
  
(HANA) 2014/03/24(月) 09:00

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.