Excel VBA質問箱 IV

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

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


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

【30127】計算方法、教えてください。 tbtk 05/10/20(木) 10:44 質問[未読]
【30129】Re:計算方法、教えてください。 Statis 05/10/20(木) 11:27 回答[未読]
【30132】Re:計算方法、教えてください。 tbtk 05/10/20(木) 12:46 お礼[未読]
【30140】Re:計算方法、教えてください。 tbtk 05/10/20(木) 15:59 発言[未読]
【30150】Re:計算方法、教えてください。 tbtk 05/10/20(木) 16:50 質問[未読]
【30165】Re:計算方法、教えてください。 Statis 05/10/21(金) 8:22 回答[未読]
【30166】Re:計算方法、教えてください。 tbtk 05/10/21(金) 8:45 お礼[未読]

【30127】計算方法、教えてください。
質問  tbtk  - 05/10/20(木) 10:44 -

引用なし
パスワード
   シート1            
        製品A  製品B   製品C
1月生産台数    10    0    10
2月生産台数    15    10    0
3月生産台数    10    0    20
4月生産台数    15    10    0

シート2    
    製品A部品必要数    製品B部品必要数    製品C部品必要数
部品1       1          1         0        

部品2     2          0         1             

部品3     0          1         0

部品4     1          0         0

部品5     0           0         1        

1月部品必要数合計    2月部品必要数合計    3月部品必要数合計    4月部品必要数合計
部品1
部品2
部品3                
部品4
部品5


上記のようなシート1とシート2とシート3があり
シート1の生産台数とシート2の部品を製品別に掛け算をさせて
シート3の月必要合計に部品別に入力をしたいのですが
VBAで計算するにはどうしたらよろしいでしょうか?
ご教示いただけると有難いです。

シート3の計算結果はこの形です
1月部品必要数合計    2月部品必要数合計    3月部品必要数合計    4月部品必要数合計
部品1   10       25         10        25
部品2   30      30         40        30
部品3   0       10        0        10    
部品4   10      15         10        15
部品5   10      0          20        0
    
自分でも挑戦しているのですがどうにも、上手く計算をしてくれません。
お手数ですがどなたがご教示お願いします。

【30129】Re:計算方法、教えてください。
回答  Statis  - 05/10/20(木) 11:27 -

引用なし
パスワード
   こんにちは

べた書きですがお試しを
「シート1=Sheet1/シート2=Sheet2/シート3=Sheet3」としています。


Sub test()
Dim Sh_1 As Worksheet, Sh_2 As Worksheet, i As Long, ii As Long
Dim Ro As Long, Ro_1 As Long, Co As Long, Con As Currency

Set Sh_1 = Worksheets("Sheet1"): Set Sh_2 = Worksheets("Sheet2")
Ro_1 = Sh_1.Range("B1").End(xlToRight).Column
With Worksheets("Sheet3")
   Ro = .Range("A65536").End(xlUp).Row
   For i = 2 To .Range("B1").End(xlToRight).Column
     For ii = 2 To Ro
       Con = 0
       For Co = 2 To Ro_1
         Con = Con + Sh_1.Cells(i, Co).Value * Sh_2.Cells(ii, Co).Value
       Next Co
       .Cells(ii, i).Value = Val(Con)
     Next ii
  Next i
End With
Set Sh_1 = Nothing: Set Sh_2 = Nothing
End Sub

【30132】Re:計算方法、教えてください。
お礼  tbtk  - 05/10/20(木) 12:46 -

引用なし
パスワード
   早速の回答ありがとうございます。
提示いただいたコード試してみます。
大変、ありがとうございました

【30140】Re:計算方法、教えてください。
発言  tbtk  - 05/10/20(木) 15:59 -

引用なし
パスワード
   すみません。提示いただいたコードで計算のほうは
間違いなく出来るのですが、自分が今作っているVBAに組み込もうとしても
出来なくて困っています。
大変、お手数なのですがコードの解説をつけてもらってもよろしいでしょうか?
本当に時間のある時などで構いませんし、時間的に難しいときなどには
お断りいただいても結構ですので、よろしければお願いします。

【30150】Re:計算方法、教えてください。
質問  tbtk  - 05/10/20(木) 16:50 -

引用なし
パスワード
   すみません。解説が欲しいとの発言をしましたが
色々、ありまして計算結果の入力シートをシート2にすることになりました。
シート2のフォームは
   A  B   C   D   E   F   G   H   I
1 日付
2 連番 部品名 必要数 必要数 必要数 必要数 製品名 製品名 製品名 備考     
3        1月  2月  3月  4月  A   B   C 
4    部品1               1   0   0
5    部品2               0   1   0
6    部品3               0   0   1
7    部品4               1   1   1
8    部品5               1   0   1
このような形に変わりました
シート3の計算結果入力欄をシート2にまとめる形です。
シート1のフォームは最初のものと変わりません。
お手数ですがもう一度、ご教示いただけますでしょうか。
ご迷惑をおかけいたしますがよろしくお願いします。

【30165】Re:計算方法、教えてください。
回答  Statis  - 05/10/21(金) 8:22 -

引用なし
パスワード
   こんにちは

シート2とシート3がひとつになたのですね。
シートレイアウトが固定と言うことで
ではお試しを。

Sub test_1()
Dim i As Long, ii As Long, Co1 As Long
Dim Ro As Long, Co As Long, Con As Currency

With Worksheets("Sheet2")
   Ro = .Range("B65536").End(xlUp).Row
   For i = 2 To 5
     For ii = 4 To Ro
       Con = 0: Co1 = 7
       For Co = 2 To 4
         Con = Con + Worksheets("Sheet1").Cells(i, Co).Value * .Cells(ii, Co1).Value
         Co1 = Co1 + 1
       Next Co
       .Cells(ii, i + 1).Value = Val(Con)
     Next ii
  Next i
End With

End Sub

【30166】Re:計算方法、教えてください。
お礼  tbtk  - 05/10/21(金) 8:45 -

引用なし
パスワード
   返事が遅れましてすいませんでした。
ご教示いただいたコードで希望の動きが実現できそうです。
お手数おかけいたしましたが、大変助かりました。
ありがとうございました。また、お世話になることもあると思いますので
よろしくお願いします。

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