条件のあったシートへデータを転記するマクロ
よろしくお願いします。
ブック内にシート名でマスターシートと在庫日報入力シートの2つがあります。在庫日報シートのA1に日付、A列3行目以降に商品コード、B列3行目以降に各商品名、F列3行目以降に各商品の在庫数量が入っており、毎日更新されます。マスターシートには縦A列3行目以降に日付が入っており、また横1行目(A1,B1,C1....)に各商品名が百以上記載されています。今まで、以下のマクロで在庫日報入力シートの在庫数量をマスターシートの対応するセルに転記していました。(縦の日付を検索し、横の商品名を検索し対応する場所に在庫数量を転記)
Private Sub CommandButton1_Click()
Application.DisplayStatusBar = True
Dim LastR, idxR As Long, trgR, trgC
If MsgBox("日付は正しいですか", vbQuestion + vbOKCancel) = vbOK Then
With Worksheets("在庫日報入力")
LastR = .Range("A65536").End(xlUp).Row
trgR = Application.Match(.Cells(1, 1), Worksheets("マスター").Range("A:A"), 0)
For idxR = LastR To 3 Step -1
trgC = Application.Match(.Cells(idxR, 1), Worksheets("マスター").Range("1:1"), 0)
If IsNumeric(trgR) And IsNumeric(trgC) Then
Worksheets("マスター").Cells(trgR, trgC + 1) = .Cells(idxR, 6)
Else
.Cells(idxR, 1).Interior.ColorIndex = 3
End If
Application.StatusBar = "マスターシートに転記中・・・進行状況 " & idxR & ""
Next idxR
End With
Application.StatusBar = False
MsgBox "終了しました。(処理件数=" & LastR- 3 & "件)", vbOKOnly: Exit Sub
End If
End Sub
今までこれで良かったのですが、今度、マスターシートを削除して、各商品名毎にシートを作成します。そのため、それぞれの商品名シートに在庫日報シートのデータを転記するように変えたいのです。商品名シートはそれぞれA列3行目以降に日付が、となりのB列に在庫数が入るようになっています。
在庫日報シートの各商品に対応した商品名シートを見つけて、そのA列から在庫日報と同じ日付を見つけて、その行のB列に在庫日報シートの在庫数量を転記する。というものです。商品名シートは百以上あり名前は文字列です。
今までのマクロは教えてgooで教えていただきながら作りました。すいませんが、またご教授をお願いします。
お礼
ありがとうございます!想像通りの動きです!!