Excel VBA質問箱 IV

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

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


1461 / 13646 ツリー ←次へ | 前へ→

【74303】別シートに複数の条件を満たしたデータを抜き出したい tokiya 13/5/20(月) 10:40 質問[未読]
【74304】Re:別シートに複数の条件を満たしたデータ... UO3 13/5/20(月) 11:00 発言[未読]
【74305】Re:別シートに複数の条件を満たしたデータ... tokiya 13/5/20(月) 11:37 発言[未読]
【74306】Re:別シートに複数の条件を満たしたデータ... UO3 13/5/20(月) 12:50 発言[未読]
【74307】Re:別シートに複数の条件を満たしたデータ... tokiya 13/5/20(月) 13:32 発言[未読]
【74309】Re:別シートに複数の条件を満たしたデータ... tokiya 13/5/20(月) 14:36 発言[未読]
【74311】Re:別シートに複数の条件を満たしたデータ... UO3 13/5/20(月) 19:53 発言[未読]
【74312】Re:別シートに複数の条件を満たしたデータ... tokiya 13/5/20(月) 22:00 発言[未読]
【74318】Re:別シートに複数の条件を満たしたデータ... tokiya 13/5/21(火) 16:40 お礼[未読]

【74303】別シートに複数の条件を満たしたデータを...
質問  tokiya  - 13/5/20(月) 10:40 -

引用なし
パスワード
   VBA初心者です。初めてこちらを使わせていただきます。よろしくお願いします。

1つのシートから別のシートに複数の条件を満たしたデータを抜き出したいです。
1つのシートは倉庫管理に使う商品の色別一覧表で、もう1つは倉庫内の商品の箱に貼る札です。

色別一覧表は
A2〜A17:品番
B2〜H2 :色名
I2〜I17:カートンナンバー
B2〜H17:本数
となっています。

一覧表の本数欄に数字が入っていれば品番・色名・カートンナンバーを抽出して貼り札へ抽出したいと思います。
単純に品番とカートンナンバーを抽出するだけでしたらできたのですが(VBAの必要もなく)、本数と色名の抽出で分からなくなりました。
一覧表の行が色名となっていますので、本数はカートンナンバーと色名の交点に入力してあります。
こんな感じです。

 黒 赤 黄 緑  カートンNo.
−−−−−−−−−−−−−
 15          150
    20        151
      20      152
        10   153 

本数と色名がどこで交差するかは表によって違うので混乱してしまいました。
こういったものはIFとElseを使って抽出すればよいと思ったのですが、知識が乏しく、条件式が思いつきません。

もしよろしければ、どなたか見本の条件式をお願いできませんでしょうか?
どうぞよろしくお願いいたします。

【74304】Re:別シートに複数の条件を満たしたデー...
発言  UO3  - 13/5/20(月) 11:00 -

引用なし
パスワード
   ▼tokiya さん:

こんにちは

>
> 黒 赤 黄 緑  カートンNo.
>−−−−−−−−−−−−−
> 15          150
>    20        151
>      20      152
>        10   153 
>

これは、できあがりの"貼り札"シートのイメージでしょうね。
色別一覧表 には、実際にどのように入力されているのでしょう?
B2〜H2 :色名
ということですが、1行のなかで、B〜H の領域に1つだけ色名が入っているのですか?
1つだけということなら、なぜ、どこかの列(たとえば B列)だけに色名をセットするレイアウトではないのでしょうか?

【74305】Re:別シートに複数の条件を満たしたデー...
発言  tokiya  - 13/5/20(月) 11:37 -

引用なし
パスワード
   >UO3さん
わかりにくくて申し訳ないです。
先ほどの表は一覧表のイメージです。


一覧表イメージ↓

 黒 赤 黄 緑  カートンNo.
−−−−−−−−−−−−−
 15          150
    20        151
      20      152
        10   153 

このさらに左に品番が入るのですが、そちらは自力でできましたので省略しています。


貼り札のイメージは↓

品番   色名
xxxx    黒

カートンNo.  本数
  150    15


こんな感じです。

【74306】Re:別シートに複数の条件を満たしたデー...
発言  UO3  - 13/5/20(月) 12:50 -

引用なし
パスワード
   ▼tokiya さん:

>わかりにくくて申し訳ないです。

まだ、【わかりにくい】ですねぇ。
このような場合、めんどくさがらずに
・タイトル行の行番号と、各タイトルがどの列にあるのか。
・データは何位行目からあるのか。

こういったことは、説明事項として必須ですね。
こちらからは、そちらのシートが見えませんから。
(もちろん、関連する列だけでいいんですが)

それと、貼り札ですが 「こんな感じです」では、雲をつかむような『感じ』です。
貼り札シートには複数のカートン情報を列挙するのか、そうではなく1件1葉 なのか?
1件1葉だとすれば、それはシートを分けるのか、各々、単独の新規ブックとして生成するのか。

いずれにしても、貼り札側も、何行目の何列めが、アップされた項目の場所なのか
全くわかりませんよね?

【74307】Re:別シートに複数の条件を満たしたデー...
発言  tokiya  - 13/5/20(月) 13:32 -

引用なし
パスワード
   ▼UO3 さん:
わかりました。
もう一度細かくまとめなおして投稿させていただきます。
少しお時間をいただきます。

【74309】Re:別シートに複数の条件を満たしたデー...
発言  tokiya  - 13/5/20(月) 14:36 -

引用なし
パスワード
   ▼UO3 さん

ご指摘ありがとうございます。
以下の形でお分かりいただけますでしょうか?

一覧表と貼り札はこのような形になります。
一覧表と貼り札のワークシートは別です(一覧表は印刷して別部署に提出のため)

<一覧表用ワークシート>

  A  B  C  D  E  F…  O
1    黒 赤 黄 緑    カートンNo.
2            
 −ーー−−−−−−−−−−−−
3 品番 15            150
4        20          151
5          20       152
6            10     153 
7                   ・
・                    ・
・                   ・

35

本数の入るセルはB3からM35のエリアで、色名とカートンNo.の交点になります。


<貼り札用ワークシート>

   A       B    C 
1 品番         色名
2一覧表A3      一覧表1行目   

4 カートンNo.       本数 
5一覧表O列     一覧表B3〜M35


一覧表用のワークシートから「品番」「色名」「カートンNo.」「本数」を抽出して、各行ごとの貼り札を作りたいと考えています。
そのため一覧表1行につき1枚の貼り札が必要になります。
たとえば一覧表3〜35行全てにデータが入っている場合、一覧表1枚につき、33枚の貼り札が印刷できるようにしたい、ということです。

よろしくお願いいたします。

【74311】Re:別シートに複数の条件を満たしたデー...
発言  UO3  - 13/5/20(月) 19:53 -

引用なし
パスワード
   ▼tokiya さん:

勘違いあれば指摘願います。
目的が貼り札の印刷ということのようですので、各データ毎に貼り札シートにセットして
印刷(コードではプレビューにしてありますが)します。

Sub Sample()
  Dim r As Range
  Dim c As Range
  Dim ctnNo As String
  Dim comNo As String
  Dim color As String
  Dim qty As Long
  
  With Sheets("色別一覧表")
    On Error Resume Next
    Set r = .Range("B3:M35").SpecialCells(xlCellTypeConstants)
    On Error GoTo 0
  End With
  
  If r Is Nothing Then
    MsgBox "処理すべきデータがありません"
    Exit Sub
  End If
  
  For Each c In r
  
    comNo = c.EntireRow.Cells(1).Value
    color = c.EntireColumn.Cells(1).Value
    qty = Val(c.Value)
    ctnNo = c.EntireRow.Range("O1").Value
    
    With Sheets("貼り札")
      .Range("A1").Value = comNo
      .Range("A4").Value = ctnNo
      .Range("C1").Value = color
      .Range("C4").Value = qty
      .PrintPreview        '本番では .PrintOut
    End With
    
  Next
    
End Sub

【74312】Re:別シートに複数の条件を満たしたデー...
発言  tokiya  - 13/5/20(月) 22:00 -

引用なし
パスワード
   迅速な作成、本当にありがとうございます!
今日明日中に手元のデータで作成し、不明な点がありましたら、再度書き込ませていただこうと思います。

UO3さん、私のわかりにくい質問に丁寧にお答えいただき、本当に助かりました。
またよろしくお願いいたします。

【74318】Re:別シートに複数の条件を満たしたデー...
お礼  tokiya  - 13/5/21(火) 16:40 -

引用なし
パスワード
   >UO3さん
作成したデータで使用させていただきました。
驚くほどぴったりのものでした!
コードを見てもまだわからない部分が多いのですが、これから一つ一つ意味を確かめ、自分でコードが作れるように勉強していきます。

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

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