VBAの複数条件での抽出



 ◇-?VBAの複数条件での抽出-チュニ-PC初心者-PC不慣れ-12/25-14:56(3024)-No.512942
   ┗?!Re:VBAの複数条件での抽出...-ZONE-12/25-21:11(3018)-No.512943
     ┗?!?Re:VBAの複数条件での抽出...-チュニ-12/25-21:45(3017)-No.512944
       ┗?!?!Re:VBAの複数条件での抽出...-ZONE-12/25-23:32(3016)-No.512950

▲このページのトップに戻る
512942VBAの複数条件での抽出チュニ-PC初心者-PC不慣れ 2013/12/25-14:56

メーカー名:富士通
OS名:Windows7
パソコン名:esprimo D551/G
--
F列には営業所のデータが入力されており、G列には二箇所の営業所が関わったときにもう一箇所の営業所を入力するようにしています。
またD列には日付が入力されていて、A列には=month(A1)という数式が入っていて、月だけが表示されるようになっています。
そしてD6は月を検索するセルで11と入れれば11月のデータを抽出するようになっています。
さらにD7は営業所を検索するセルでリストから営業所を選ぶとその営業所のデータを抽出するようになっています。
それが下記のコードなのですが、
D6とD7を両方入力したときの場合を入れたいのです。
(例、12月の東京店を抽出)
何を加えたらよいのかを教えてください。
よろしくお願いいたします。






Private Sub Worksheet_Change(ByVal Target As Range)

Dim myRng As Range
Dim myRang As Range
Dim myRow As Long
Dim myCol As Integer

Set myRng = Range("F12:G30000")
myRow = Target.Row
myCol = Target.Column

Application.EnableEvents = False
Application.ScreenUpdating = False

Set myRang = Range("A12:A30000")
myRow = Target.Row
myCol = Target.Column

Application.EnableEvents = False
Application.ScreenUpdating = False

If Range("D7").Value = "" And Range("D8").Value = "" And Range("D6").Value = "" Then
If ActiveSheet.AutoFilterMode Then
ActiveSheet.AutoFilterMode = False
End If
Else
'月検索
If myRow = 6 And myCol = 4 Then
With myRang
.AutoFilter
.AutoFilter Field:=1, Criteria1:="=" & Range("D6").Value

End With

Range("D8").Value = ""
End If
'営業所検索
If myRow = 7 And myCol = 4 Then
With myRng
.AutoFilter
.AutoFilter Field:=1, Criteria1:="=" & Range("D7").Value
End With

Range("D8").Value = ""
End If

'営業所(特便のみ)検索
If myRow = 8 And myCol = 4 Then
With myRng
.AutoFilter
.AutoFilter Field:=1, Criteria1:="=" & Range("D8").Value
.AutoFilter Field:=2, Criteria1:="<>"
End With

Range("D7").Value = ""

End If

End If



Application.EnableEvents = True
Application.ScreenUpdating = True



End Sub

▲このページのトップに戻る
512943Re:VBAの複数条件での抽出ZONE 2013/12/25-21:11

記事番号512942へのコメント
チュニ-PC初心者-PC不慣れさんは No.512942「VBAの複数条件での抽出」で書きました。

・データ抽出について
http://pasokoma.jp/51/lg512850
同一人物ですよね。前にも注意したけどルール違反はいけないなぁ。
それと、解決できたのかな?

> Set myRng = Range("F12:G30000")
> Set myRang = Range("A12:A30000")

このままでも構わないけど統一して検索対象セル範囲を明示的にすることにより
全体が良く見えるようになるので、簡単に問題解決できますよ。

▲このページのトップに戻る
512944Re:VBAの複数条件での抽出チュニ 2013/12/25-21:45

記事番号512943へのコメント
ご回答ありがとうございます。
ちなみに私は、初めて質問しました。
同じ職場のものが前に質問したようです。

set myRng=Range("A12:G30000")

と変えたのですが、その後の具体的なコードが初心者の為、
まったくわかりません。
申し訳ありませんが、教えてください。

▲このページのトップに戻る
512950Re:VBAの複数条件での抽出ZONE 2013/12/25-23:32

記事番号512944へのコメント
チュニさんは No.512944「Re:VBAの複数条件での抽出」で書きました。

>set myRng=Range("A12:G30000")

A列〜G列がAutoFilterのField 1〜7に対応するのは理解されていますよね?
#myRngを使用している記述済みのコードはField番号が変わるので要変更のこと。
で、
>D6とD7を両方入力したときの場合を入れたいのです。
>(例、12月の東京店を抽出)
これを実現するには、A列がD6と一致しF列がD7と一致する行を抽出するように
コード記述するだけです。

With myRng
.AutoFilter
.AutoFilter Field:=1, Criteria1:=Range("D6").Value
.AutoFilter Field:=6, Criteria1:=Range("D7").Value
End With

A1.本ページは参考になりましたか? 又はアドバイスがありますか?
解決 参考になった 参考にならなかった アドバイスする

A2.何度目の訪問ですか?
初めて来た   数度目(2〜4) 5回以上来ている   管理人:

A3.何か一言どうぞ(アドレスは書くことができません)

A4.アドレスがあればどうぞ(1つまで)


↑↑↑↑よろしければ押してください↑↑↑↑

何か一言(本ページで参考になったならないを含めて残してあります)
◎:解決 ○:参考になった ×:参考にならなかった !:アドバイスあり

参考回数投稿日時何か一言