シート1ではA列に商品コード、B列に商品名、C列に分類が入力されており、D列には在庫の○を表示させることにします。
シート2ではA1セルに商品コードを入力することでB1セルには商品名を、また、分類をC1セルに表示させるのでしたら、B1セルに次の式を入力しC1セルまでオートフィルドラッグします。
=IF(OR($A1="",COUNTIF(Sheet1!$A:$A,$A1)=0),"",INDEX(Sheet1!$B:$C,MATCH($A1,Sheet1!$A:$A,0),COLUMN(A1)))
シート見出しのSheet2を右クリックして「コードの表示」をクリックしてマクロを記入する画面を表示させます。
次のマクロを入力します。
Private Sub Worksheet_Change(ByVal Target As Range)
Set WS1=Worksheets("Sheet1")
Dim ans As Integer
Dim RowPos As Integer
If Target=Range("A1") And Range("A1")<>"" Then
If WorksheetFunction.CountIf(WS1.Range("A:A"),Range("A1"))=0 Then
MsgBox"該当する商品コードがシート1に有りません"
Exit Sub
End If
ans=MsgBox("商品名は "&Range("B1")&" です。分類は "&Range("C1")&" です。間違いありませんね?",vbYesNo)
If ans=vbYes Then
RowPos=WorksheetFunction.Match(Range("A1"),WS1.Range("A:A"),0)
WS1.Cells(RowPos,4)="○"
End If
End If
End Sub
これでシート1のD列には○が表示されます。
お礼
ありがとうございました 思った通りの事ができました これでかなり仕事の改善になります。感謝です