エクセル(Excel)&ワード(Word)質問掲示板

より見やすく使いやすいエクセル掲示板を目指し、新たにエクセルの質問掲示板を開設いたしました。 これに伴い、当サイトでは今後、新規投稿はできなくなります。(閲覧は当面可能です。)
今後は新掲示板をご利用いただきますよう宜しくお願い致します。今後ともよろしくお願い致します。
○新掲示板
エクセル(Excel)解決掲示板

エクセル・ワードの基本操作に関する質問や関数やマクロの使い方などエクセルとワードに関する質問掲示板。
Welcome Guest 
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

Re: VBAによる組み合わせ計算処理について

このトピックの投稿一覧へ

なし Re: VBAによる組み合わせ計算処理について

msg# 1.1.1
depth:
2
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2015-1-26 10:23
ゲスト 
とらねこさん

アドバイスありがとうございます。
総当たりで組んでみましたが、
For文の戻りが上手くいかず元個数より多く使用してしまいました。

ちなみに、データの並びを下記に変えて実行中しました。

For文では厳しいかもしれませんがもう少しこのやり方で試してみます。

ありがとうございます。

g数 個数 合計kg g数 個数 合計kg g数 個数 合計kg g数 個数 合計kg
100 g 0 200 g 0 0 300 g 2 600 400 g 0
110 g 0 210 g 0 0 310 g 3 930 410 g 0
120 g 0 220 g 0 0 320 g 5 1600 420 g 0
130 g 0 230 g 0 0 330 g 3 990 430 g 0
140 g 0 240 g 0 0 340 g 3 1020 440 g 0
150 g 2 150 250 g 11 2750 350 g 4 1400 450 g 0
160 g 3 480 260 g 8 2080 360 g 2 720 460 g 0
170 g 0 2470 270 g 10 2430 370 g 4 1480 470 g 0
180 g 1 180 280 g 4 1120 380 g 2 760 480 g 0
190 g 14 2660 290 g 5 1450 390 g 3 780 490 g 0


Sub 商品組み合わせ()

Dim myRow As Long
Dim book1 As Workbook
Dim StartTime, StopTime As Variant
Set sh1 = Worksheets("個数")
Set Sh2 = Worksheets("商品組み合わせ")

count1 = 3

If sh1.Range("O13").Value = 0 Then

For a = 12 To 3 Step -1
原料1 = sh1.Range("L" & a).Value
原料11 = sh1.Range("I" & a).Value
If 原料1 > 0 Then

For b = 3 To 12
原料2 = sh1.Range("D" & b).Value
原料22 = sh1.Range("A" & b).Value
If 原料2 > 0 Then

For c = 3 To 12
原料3 = sh1.Range("H" & c).Value
原料33 = sh1.Range("E" & c).Value
If 原料3 > 0 Then

合計1 = 原料11 + 原料22 + 原料33

If 合計1 < 1000 Then
For d = 12 To 3 Step -1

原料4 = sh1.Range("d" & d).Value
原料44 = sh1.Range("a" & d).Value
If 原料4 > 0 Then
合計2 = 合計1 + 原料44
If 合計2 > 999 And 1021 > 合計2 Then


原料差引1 = sh1.Range("L" & a).Value - 原料11
原料差引2 = sh1.Range("D" & b).Value - 原料22
原料差引3 = sh1.Range("H" & c).Value - 原料33
原料差引4 = sh1.Range("d" & d).Value - 原料44


sh1.Range("L" & a).Value = 原料差引1
sh1.Range("D" & b).Value = 原料差引2
sh1.Range("H" & c).Value = 原料差引3
sh1.Range("d" & c).Value = 原料差引4


Sh2.Range("A" & count1).Value = 原料11
Sh2.Range("A" & count1 + 1).Value = 原料22
Sh2.Range("A" & count1 + 2).Value = 原料33
Sh2.Range("A" & count1 + 3).Value = 原料44
Sh2.Range("C" & count1 + 4).Value = 合計2

count1 = count1 + 5
End If
End If
Next d
End If
End If
Next c
End If
Next b
End If
Next a
End If
End Sub
投票数:8 平均点:3.75
返信する

この投稿に返信する

題名
ゲスト名   :
投稿本文

投稿ツリー

  条件検索へ


スポンサーリンク
スポンサーリンク
エクセル・ワード質問/回答集 - クイズ・問題QUUS! - 無料英語学習 - 投資家・トレーダー掲示版
為替(FX)テクニカル分析入門 - エクセル(EXCEL)学習・入門 - Word(ワード)の使い方/活用・入門
Copy right(c) 2006-2010 エクセル&ワード質問掲示板 all right reserved