Excel VBA質問箱 IV

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

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


5362 / 76732 ←次へ | 前へ→

【76983】【VBA】不特定数データを検索したシートに足し込み
質問  Haruka  - 15/4/24(金) 11:10 -

引用なし
パスワード
   マクロ初心者です。下記の内容についてマクロを組んでみたのですが、どうしても5.で止まってしまい、6.の作業に移行しません。説明が不十分かもしれませんが、アドバイス頂けると助かります。

"元データ"A列2行目に地域コード、3行目以降に不特定数の商品コードが記入されている。
B列は商品名で、CDE列は販売数量・売上高・粗利が記入されており、このパターンが不特定数繰り返される。
"元データ"のA列は、1つの地域データの後に空白セルが1つあり、その後に次の地域コードがある。
元データシート以降に各地域毎のシートがあり、シート名は地域名になっている(以後地域シート)。
*地域シートはいくつかの地域コードを含む場合がある
"地域シート"はA列に商品コード、それ以降の列は7行目から月毎の販売数量・売上高・粗利を記入する。"地域シート"の構成は全て同じ。
その時によって記入したい時期が変わるので、"元データ"H列に記入された対象時期の数値で時期を判別。
H列の対象時期の数値は"地域シート"の3行目に時期毎に記入されている(Ex.10月→10)

<元データシート>
     A列    B列    C列    D列  E列   F列  G列  H列
01行目 記録日  商品名   販売数量 売上高 粗利益 (空白) 時期 102
02行目 1058   ABC USA Inc 
03行目 7001   りんご    2    2500  1000
04行目 7002   みかん    5    5500  3000
05行目 7003   バナナ    4    3500  1500
06行目 (空白セル)
07行目 1003   DEC China
08行目  901   サバ     2    2500  1000
09行目  902   さんま    5    5500  3000

<地域シート>
     A列  B列     C列    D列  E列   F列  G列  H列
01行目 (空白) 販売実績   北米   (空白)  
02行目 (空白) ABC USA Inc
03行目 (空白) (空白)   (空白)   102
04行目 (空白) (空白)   (空白)   9月
05行目 (空白) コード 商品名  
06行目 (空白)             数量    売上金額    粗利額
07行目 7001  E7001  りんご     2   2500  1000
08行目 7002  E7002  みかん     5   5500  3000
09行目 7003  E7003  バナナ     4   3500  1500

<やりたいこと>
1.:"元データ"の地域コードから該当する"地域シート"名を判別
2.:"元データ"H列の対象時期で"地域シート"の記入場所を判別。
3.:"地域シート"A列の商品コードと、"元データ"A列のコードが一致したら"地域シート"に販売数・売上高・粗利を貼り付ける
4.:3.の作業を"元データ"A列のセルが空白になるまで繰り返し
5.:"元データ"の次のデータに移行し、1.から繰り返し
6.:"元データ"のB列が空白になるまで繰り返し

5.で止まる時は元データの5行目のコピー&ペーストまで行い、自動的に
終了してしまいます。終了した時点では、ペーストしたセルがアクティブに
なっており、次の得意先コードに移行していない様子です。5.の時点でのmの値は
6なので、なぜ次の地域コードに移行しないのか分かりません。

Sub データ入力マクロ()

  Dim ws As Worksheet

  i = 2
  m = 2

  Application.ScreenUpdating = False

Step1:
  
  Worksheets("元データ").Select

'  1.地域シートの検索と定義づけ
    
    Select Case Cells(i, 1)
    
      Case 1085, 1091, 1103, 1039, 1132
      Set ws = Worksheets("America")

      Case 1230
      Set ws = Worksheets("China")
    
      Case Else
      MsgBox ("該当する代理店がありません")
    
    End Select

'  2.データを入れる期間の検索

  cnt = Worksheets("元データ").Range("H" & 1).Value

  ws.Select
  
  d = ws.Range("A3:HS3").Find(cnt).Column
  
'  3.商品コードでデータを検索 該当セルに貼り付け

  Do Until Sheets("元データ").Range("A" & m) = ""
 
  Sheets("元データ").Select
  
  For y = 7 To 210
    
    If Worksheets("元データ").Range("A" & m).Value = ws.Range("A" & y).Value Then
 
    Sheets("元データ").Select
    Range("C" & m, "E" & m).Copy
    ws.Select
    Cells(y, d).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd, _
    SkipBlanks:=False, Transpose:=False

  End If
 
  Next y
 
'  4.元データの次の行を検索
 
  m = m + 1
 
  Loop
      
'  5.次の地域コードに移行

  If Sheets("元データ").Cells(m, 1) = "" Then
  m = m + 1
  i = m

  End If

'  6.元データのB列が空白セルになるまで繰り返し
  
  c = Range("B1").End(xlDown).Row
  Do While m < c
  
  GoTo Step1

  Loop


End Sub

以上です。
こちらでは初めての質問で、分かり辛いかと思いますがご助言頂ければ
本当に助かります。どうぞ宜しくお願い致します。
261 hits

【76983】【VBA】不特定数データを検索したシートに足し込み Haruka 15/4/24(金) 11:10 質問[未読]
【76984】Re:【VBA】不特定数データを検索したシート... 独覚 15/4/24(金) 11:20 発言[未読]
【76985】Re:【VBA】不特定数データを検索したシート... Haruka 15/4/24(金) 11:27 回答[未読]
【76986】Re:【VBA】不特定数データを検索したシート... β 15/4/24(金) 11:48 発言[未読]
【76987】Re:【VBA】不特定数データを検索したシート... β 15/4/24(金) 14:07 発言[未読]
【76988】Re:【VBA】不特定数データを検索したシート... Haruka 15/4/24(金) 16:23 発言[未読]
【76990】Re:【VBA】不特定数データを検索したシート... β 15/4/24(金) 18:00 発言[未読]
【76991】Re:【VBA】不特定数データを検索したシート... β 15/4/24(金) 19:32 発言[未読]
【76992】Re:【VBA】不特定数データを検索したシート... β 15/4/25(土) 6:23 発言[未読]
【76993】Re:【VBA】不特定数データを検索したシート... Haruka 15/4/27(月) 9:23 発言[未読]
【76994】Re:【VBA】不特定数データを検索したシート... β 15/4/27(月) 9:43 発言[未読]
【76995】Re:【VBA】不特定数データを検索したシート... Haruka 15/4/27(月) 15:04 質問[未読]
【76996】Re:【VBA】不特定数データを検索したシート... β 15/4/27(月) 15:52 発言[未読]
【76997】Re:【VBA】不特定数データを検索したシート... β 15/4/28(火) 7:21 発言[未読]
【76998】Re:【VBA】不特定数データを検索したシート... Haruka 15/4/28(火) 10:26 お礼[未読]

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