プロが教えるわが家の防犯対策術!

オートフィルターによる検索で該当データがなかった場合に"データがありません"とメッセージを出し、再度UserFormにて再検索が出来る様にしたいです。

現状は、「~含む」でオートフィルターがかかるようになってます。
現在のコードです。

Private Sub CommandButton2_Click()
Application.ScreenUpdating = False

If TextBox2.Text = "" Then
MsgBox "検索条件を入力してください"
Exit Sub
End If
検索Data = UserForm1.TextBox2.Value
 With Worksheets("Sheet1").Range("A2").CurrentRegion
 .AutoFilter Field:=3, Criteria1:="=*" & 検索Data & "*"
Unload Me
Exit Sub
End With
End Sub

どうぞ宜しくお願いします。

A 回答 (2件)

こんな感じでしょうか?



'//
Private Sub CommandButton2_Click()
 Application.ScreenUpdating = False '?
 If TextBox2.Text = "" Then
  MsgBox "検索条件を入力してください"
  Exit Sub
 End If
 検索Data = UserForm1.TextBox2.Value
 With Worksheets("Sheet1")
  If .AutoFilterMode Then   
   .AutoFilterMode = False
  End If
  With .Range("A2").CurrentRegion
   .AutoFilter
   .AutoFilter Field:=3, Criteria1:="=*" & 検索Data & "*"
  End With
  If WorksheetFunction.Subtotal(3, .AutoFilter.Range.Columns(1)) = 1 Then
   MsgBox "データがありません。やり直してください。", vbExclamation
   .AutoFilter.ShowAllData
   TextBox2.Value = ""
  Else
   Unload Me
  End If
 End With
End Sub
    • good
    • 0
この回答へのお礼

有難う御座いました。
思っていたかたち通りに出来ました。

お礼日時:2016/11/09 09:40

絞り込んで行数数えたら?


subtotal関数だったかな?
それと、現在フィルタがかかってるかどうかの判定文もあった方がいいね。
頑張って。
    • good
    • 0
この回答へのお礼

有難う御座いました。
うまくいきました

お礼日時:2016/11/09 09:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!