Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4074 / 13644 ツリー ←次へ | 前へ→

【58532】複数シートからの検索・抽出方法 ロシツキー 08/10/29(水) 1:20 質問[未読]
【58534】Re:複数シートからの検索・抽出方法 こぎつね 08/10/29(水) 7:48 発言[未読]
【58536】Re:複数シートからの検索・抽出方法 ロシツキー 08/10/29(水) 10:08 質問[未読]
【58543】Re:複数シートからの検索・抽出方法 こぎつね 08/10/29(水) 14:30 発言[未読]
【58544】Re:複数シートからの検索・抽出方法 ロシツキー 08/10/29(水) 15:27 発言[未読]
【58551】Re:複数シートからの検索・抽出方法 こぎつね 08/10/29(水) 17:09 発言[未読]
【58561】Re:複数シートからの検索・抽出方法 ロシツキー 08/10/30(木) 9:23 お礼[未読]
【58545】Re:複数シートからの検索・抽出方法 08/10/29(水) 16:05 回答[未読]
【58562】Re:複数シートからの検索・抽出方法 ロシツキー 08/10/30(木) 9:40 お礼[未読]

【58532】複数シートからの検索・抽出方法
質問  ロシツキー  - 08/10/29(水) 1:20 -

引用なし
パスワード
   顧客データのシートAとBがあり、別のシートで、検索条件を入力し
検索ボタンを押して、該当するデータを表示させています。
検索ボタンはA用とB用二つあり、それを一つに統合したい
(AとBを同時に検索・抽出させたい)のですが、
上手くできません。大変恐縮ですがご教示願います。

  Sheets("A").Range("A1:M65536").Cells.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
    Range("A3:F5"), CopyToRange:=Range("C10:O10"), Unique:=False

このあたりを変えれば良いと思うのですが・・・。

【58534】Re:複数シートからの検索・抽出方法
発言  こぎつね  - 08/10/29(水) 7:48 -

引用なし
パスワード
   ▼ロシツキー さん:
>顧客データのシートAとBがあり、別のシートで、検索条件を入力し
>検索ボタンを押して、該当するデータを表示させています。
>検索ボタンはA用とB用二つあり、それを一つに統合したい
>(AとBを同時に検索・抽出させたい)のですが、
>上手くできません。大変恐縮ですがご教示願います。
>
>  Sheets("A").Range("A1:M65536").Cells.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
>    Range("A3:F5"), CopyToRange:=Range("C10:O10"), Unique:=False
>
>このあたりを変えれば良いと思うのですが・・・。

CriteriaRange:=Range("A3:F5"),
CopyToRange:=Range("C10:O10"),
このRangeがどのシートなのかを明確にしてあげるとか。(シートから指定する)
ではないのかな?

違っていたらすいません。

【58536】Re:複数シートからの検索・抽出方法
質問  ロシツキー  - 08/10/29(水) 10:08 -

引用なし
パスワード
   ▼こぎつね さん:

早速のご回答ありがとうございます。

Aシート検索、Bシート検索と二つのボタンがあり、
ボタンを一つにして、Aシート、Bシート両方を検索して、
検索結果シートに抽出をしたいのですが、できませんか?
わからないのが情けないです。

各ボタンのマクロです。

Sub A検索()
  
  Range("C11:O65536").Select
  Selection.Clear
  
  Dim check
  check = Evaluate("countblank(C4:F4)")
  
〜検索シートの条件入力欄があります〜
  
  Sheets("A").Range("A1:N65536").Cells.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
    Range("A3:F5"), CopyToRange:=Range("C10:O10"), Unique:=False

  Range(Cells(5, 1), Cells(5, 4)).Select
  Selection.Clear
  Range("C11").Select
  
End Sub

【58543】Re:複数シートからの検索・抽出方法
発言  こぎつね  - 08/10/29(水) 14:30 -

引用なし
パスワード
   各ボタンのマクロを提示するより、

・データのあるシート構成
・抽出条件のあるシート構成
・抽出結果を貼り付けるシート構成
等々を提示された方が良いかと思いますけど。

【58544】Re:複数シートからの検索・抽出方法
発言  ロシツキー  - 08/10/29(水) 15:27 -

引用なし
パスワード
   ▼こぎつね さん:
何度もすみません。

・抽出条件と抽出結果を貼り付けるシートは、「検索用」という名前で
同じです。


(A3:F5)
名 前2 電話番号2 顧客番号 管理番号    名  前 電話番号
            A       B     カタカナ 電 話2
カタカナ 電 話2   A       B        

※顧客番号、管理番号、電話番号、名前のいずれかを入力すると、
 シートの該当者を抽出し、C10:O10に貼り付けます。

・データのあるシート構成は、13項目あります。
(A1:M1)
 顧客番号 管理番号 名前 名前2 「項目1」 「項目2」 電話番号 電話番号2 「項目3」 「項目4」 「項目5」 「項目6」 「項目7」

※。("A1:N65536")を検索します。

【58545】Re:複数シートからの検索・抽出方法
回答    - 08/10/29(水) 16:05 -

引用なし
パスワード
   ▼ロシツキー さん:
>顧客データのシートAとBがあり、別のシートで、検索条件を入力し
>検索ボタンを押して、該当するデータを表示させています。
>検索ボタンはA用とB用二つあり、それを一つに統合したい
>(AとBを同時に検索・抽出させたい)のですが、
>上手くできません。大変恐縮ですがご教示願います。
>
>  Sheets("A").Range("A1:M65536").Cells.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
>    Range("A3:F5"), CopyToRange:=Range("C10:O10"), Unique:=False
>
>このあたりを変えれば良いと思うのですが・・・。

簡単方法は
1.シートAにシートBの検索ボタンを作成する
2.シートBの検索ボタン対応コードは1.のボタンのイベントにコピーする
3.2のコートにRange("A3:F5")などの位置相関ソース前に「Sheets("B").」追加する
4.3の修正後ソースはシートAのボタンのソースの最後に追加する
5.シートBのソースを削除する、2.3.のソースを削除する
6.コンパイル修正後のシートAソース

【58551】Re:複数シートからの検索・抽出方法
発言  こぎつね  - 08/10/29(水) 17:09 -

引用なし
パスワード
   取り敢えずですが、抽出対象のシート名は修正して下さい。

Sub try()
Dim r As Range
Dim rs As Range
Dim v

With Worksheets("検索用")
   .Range("C10:O" & Rows.Count).ClearContents

   For Each v In Array("A", "B") '抽出対象のシート名
     Set r = .Range("C" & Rows.Count).End(xlUp).Offset(1)
     If r.Row < 11 Then Set r = .Range("C11")

     Worksheets(v).Columns("A:M").AdvancedFilter Action:=xlFilterInPlace, _
     CriteriaRange:=.Range("A3:F5")

     Set rs = Intersect(Worksheets(v).Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible), _
          Worksheets(v).Rows("2:" & Rows.Count))

     If Not rs Is Nothing Then
       .Range("C10:O10").Value = Worksheets("A").Range("A1:M1").Value
       rs.Copy r
     End If
     Worksheets(v).ShowAllData
     Application.CutCopyMode = False
   Next
End With
End Sub

こうゆう感じの事かなと思うのですが。

【58561】Re:複数シートからの検索・抽出方法
お礼  ロシツキー  - 08/10/30(木) 9:23 -

引用なし
パスワード
   ありがとうございました。ちょっと表示が違っていたのですが、
できました。後は調べて修正いたします。

ありがとうございました。

【58562】Re:複数シートからの検索・抽出方法
お礼  ロシツキー  - 08/10/30(木) 9:40 -

引用なし
パスワード
   ▼呉 さん:
ありがとうございました。初心者で大変申し訳ないです。
ご教示いただいた方法でやってみます。
ありがとうございました。

4074 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free