Excel VBA質問箱 IV

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

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


1523 / 13644 ツリー ←次へ | 前へ→

【73600】循環参照回避 nonoka 13/1/27(日) 1:46 質問[未読]
【73602】Re:循環参照回避 UO3 13/1/27(日) 16:19 発言[未読]
【73603】Re:循環参照回避 nonoka 13/1/27(日) 19:24 回答[未読]
【73604】Re:循環参照回避 UO3 13/1/27(日) 23:03 発言[未読]
【73605】Re:循環参照回避 UO3 13/1/28(月) 12:41 発言[未読]
【73606】Re:循環参照回避 nonoka 13/1/28(月) 13:54 回答[未読]
【73607】Re:循環参照回避 ウッシ 13/1/28(月) 13:56 回答[未読]
【73608】Re:循環参照回避 nonoka 13/1/28(月) 14:06 回答[未読]
【73609】Re:循環参照回避 ウッシ 13/1/28(月) 14:36 回答[未読]
【73611】Re:循環参照回避 nonoka 13/1/28(月) 16:08 回答[未読]
【73612】Re:循環参照回避 ウッシ 13/1/28(月) 16:44 回答[未読]
【73615】Re:循環参照回避 nonoka 13/1/28(月) 19:00 回答[未読]
【73616】Re:循環参照回避 ウッシ 13/1/28(月) 19:15 回答[未読]
【73617】Re:循環参照回避 nonoka 13/1/28(月) 19:27 回答[未読]
【73618】Re:循環参照回避 ウッシ 13/1/28(月) 20:40 回答[未読]
【73621】Re:循環参照回避 nonoka 13/1/28(月) 22:32 お礼[未読]
【73613】Re:循環参照回避 UO3 13/1/28(月) 17:12 発言[未読]
【73614】Re:循環参照回避 nonoka 13/1/28(月) 18:24 回答[未読]
【73619】Re:循環参照回避 UO3 13/1/28(月) 21:21 発言[未読]
【73620】Re:循環参照回避 nonoka 13/1/28(月) 22:30 回答[未読]
【73622】Re:循環参照回避 UO3 13/1/28(月) 22:56 発言[未読]
【73623】Re:循環参照回避 nonoka 13/1/28(月) 23:01 回答[未読]
【73626】Re:循環参照回避 UO3 13/1/29(火) 6:20 発言[未読]
【73629】Re:循環参照回避 nonoka 13/1/29(火) 9:16 回答[未読]
【73633】Re:循環参照回避 UO3 13/1/29(火) 12:33 発言[未読]
【73634】Re:循環参照回避 nonoka 13/1/29(火) 12:56 回答[未読]
【73635】Re:循環参照回避 UO3 13/1/29(火) 13:16 発言[未読]
【73636】Re:循環参照回避 UO3 13/1/29(火) 13:18 発言[未読]
【73637】Re:循環参照回避 nonoka 13/1/29(火) 13:23 回答[未読]
【73638】Re:循環参照回避 UO3 13/1/29(火) 13:36 発言[未読]
【73639】Re:循環参照回避 nonoka 13/1/29(火) 14:27 回答[未読]
【73641】Re:循環参照回避 UO3 13/1/29(火) 14:40 発言[未読]
【73642】Re:循環参照回避 nonoka 13/1/29(火) 14:46 回答[未読]
【73643】Re:循環参照回避 nonoka 13/1/29(火) 15:10 回答[未読]
【73644】Re:循環参照回避 nonoka 13/1/29(火) 15:13 回答[未読]
【73646】Re:循環参照回避 UO3 13/1/29(火) 15:23 発言[未読]
【73648】Re:循環参照回避 UO3 13/1/29(火) 15:31 発言[未読]
【73650】Re:循環参照回避 nonoka 13/1/29(火) 16:30 回答[未読]
【73651】Re:循環参照回避 UO3 13/1/29(火) 16:51 発言[未読]
【73652】Re:循環参照回避 nonoka 13/1/29(火) 17:01 回答[未読]
【73653】Re:循環参照回避 UO3 13/1/29(火) 20:21 発言[未読]
【73656】Re:循環参照回避 nonoka 13/1/29(火) 22:48 お礼[未読]
【73645】Re:循環参照回避 UO3 13/1/29(火) 15:18 発言[未読]
【73647】Re:循環参照回避 nonoka 13/1/29(火) 15:27 回答[未読]
【73640】Re:循環参照回避 UO3 13/1/29(火) 14:34 発言[未読]
【73610】Re:循環参照回避 UO3 13/1/28(月) 14:39 発言[未読]
【73705】Re:循環参照回避 nonoka 13/2/5(火) 20:19 質問[未読]
【73712】Re:循環参照回避 UO3 13/2/6(水) 11:17 発言[未読]
【73713】Re:循環参照回避 UO3 13/2/6(水) 11:32 発言[未読]
【73715】Re:循環参照回避 UO3 13/2/6(水) 12:07 発言[未読]
【73716】Re:循環参照回避 nonoka 13/2/6(水) 12:57 回答[未読]

【73600】循環参照回避
質問  nonoka  - 13/1/27(日) 1:46 -

引用なし
パスワード
   いつもお世話になってます。
関数を入れたら循環参照にはまってしまいました。
VBAの質問箱に質問して良いものかわかりませんでしたが、
助けてください。

現在は、循環参照の問題で手入力方式で入力しています。
表は見出しが9列目でデータはC10からAB10までありKの列に手入力で
日数を入力します。
データは蓄積タイプでC列からJ列は品番などの入力をおこないます。(ここは手入力でOKです。)
C列に入力した日付が入力されます。
ここから自動にしたいです。
現在ではK列に日付を手入力すると自動でQとRとVの列に日付が入ります。Q列ではQ10:Q500の最高頻出セルの数を検索し頻出セル数がQ6の数字を超えるとNGとQ5に表示させるようにしています。R,Vの列も同じです。
Q,R,Vいづれかが1つでもNGとなればNGで、K列の数字を一日プラスして次の日付を手入力しています。K列に入力してNGになれば、K列をプラス一日することになり、循環参照になり自動に出来ていません。基準日はC列に入っています。

簡単に説明すると、一行に1回分の生産項目があります。
一日の各工程キャパがQ6、R6、V6に入っていて、どこかで超えると、
投入開始日K列を一日遅らせて自動で入力したいです。
Q7にはCOUNTIF(Q10:Q500,MODE.SNGL(Q10:Q500))
Q6には6
Q5にはIF(Q6-Q7<0,"NG","OK")
というような感じで、K列を自動化したいです。

例えばC列が1月25日でK列も1月25日が入りQ列に1月27日が入ったとします。
Q10からQ500の間に1月27日が6個以上あればK列を1月26日にしてQ列が1月28日となるようにしたいです。

関数では無理そうですが、なにか良い方法など教えてください。
宜しくお願い致します。

【73602】Re:循環参照回避
発言  UO3  - 13/1/27(日) 16:19 -

引用なし
パスワード
   ▼nonoka さん:

こんにちは
説明がよくわかりません。

>Kの列に手入力で日数を入力します。

K列は"日数"なんですか?
だとすると、何から何までの日数なんでしょう?

でも

>現在ではK列に日付を手入力すると

それとも、K列も "日付"ですか?

>C列に入力した日付が入力されます。

C列も(何らかの)日付ですね?

>現在ではK列に日付を手入力すると自動でQとRとVの列に日付が入ります。

K列が日付か日数かがわからず、ここのところもよくわからないのですが
たとえば C列、K列に入力したものと、それをもとに自動的に生成されると思われる
Q,R,V の値、ならびに、その値の算出基準を具体的に教えていただけませんか?
(最高頻出セルの数とのチェック抜きの、そもそものロジック)

【73603】Re:循環参照回避
回答  nonoka  - 13/1/27(日) 19:24 -

引用なし
パスワード
   UO3様
またまた、お世話になります。

C列は手入力の日付(基準日です。)
K列はC列と同じ日付が入りますが、Q,R,Vの日付のの数により日付をプラスさせたいです。
C列がデータインプット日
K列が生産スタート日
Q、R,Tが各生産工程での工程完了日
Q、R、Vの1日の生産キャパはQ6とR6とV6に入っています。

キャパが例えば    6個  6個  10個
C列   K列   Q列  R列   V列
1/25   1/25       1/27   1/28
1/25   1/25       1/27   1/28
1/25   1/25       1/27   1/28
1/25   1/25       1/27   1/28
1/25   1/25       1/27   1/28
1/25   1/25       1/27   1/28
1/25   1/26       1/28   1/29 ←のK列のようにQ、R、Vの列のキャパを超えた時、K列の日付を+1日する方法を教えてください。
Q,R,VはK列の日付を読み取り関数によりK列に日付が入れば自動で入ります。

【73604】Re:循環参照回避
発言  UO3  - 13/1/27(日) 23:03 -

引用なし
パスワード
   ▼nonoka さん:

こんばんは

まだ、理解し切れていません。
なんとなく、10行目に生産開始情報をいれる。
その情報に基づいて、生産キャパを見ながら11行目以降に各日の生産予定を記述していく。
そんな処理なのかな?とも思えますが、それであれば生産数量をどこかで指定する必要が
あると思います。
説明では、そういった情報のことにはふれておられないので、やはり、こちらの理解が
正しくないんだろうなと。

やはり、実際にどこに何をいれる。そうすると、それがどのように展開されるか、
その具体例と、なぜそのような展開になるかという仕様の説明がほしいですね。

【73605】Re:循環参照回避
発言  UO3  - 13/1/28(月) 12:41 -

引用なし
パスワード
   ▼nonoka さん:

こんにちは

もしかしたら、私の質問自体、なんのことだかよくわからないと思われているかも。
ちょっと質問の仕方をかえます。

今、シートの10行目以降には何も入っていないとします。
で、Q6に 6、R6に 7、 V6に 8 と入っているとします。

この状態で、C10 に 2013/1/28 と入力したとします。
この時、このシート上で、C,K,Q,R,V 列 には、どの行に、どういったものが表示されたらいいのですか?
(10行目だけじゃないと想像しています)

で、次に、もしかしたら、上の入力で自動的に何か書き込まれているかもしれない C11 に
2013/2/3 と入力したとします。
この時、C,K,Q,R,V 列 には、どの行に、どういったものが表示されたらいいのですか?

【73606】Re:循環参照回避
回答  nonoka  - 13/1/28(月) 13:54 -

引用なし
パスワード
   ▼UO3 さん:

CからJにはこのまえご教授頂いたコピーのデータが入ってます。
INPUTシートから計画表にコピーしたものです。
一行につき1バッチ生産するイメージです。

C列にはINPUTした日が入ってます。
Kの列には投入日を現在では手入力しています。
NからAAまでは各工程の通過日がKの日付をもとに計算され、表示されます。
その中で、キャパの対象がQ、R、Vです。
QだけでみるとQ10から500までの間に積み上げ式にデータが下に追加されます。
Q10から500の中に例えば1/25の日付が6個(キャパ6個の場合)だとOK、7個になるとNGがQ5に表示されます。これは、Q10から500までに同じ日付が6個以上にならないように管理する為です。

K,Q,R,Vには日付が入ります。
現在Q,R,VはKの日付をもとに計算しています。
Kの日付をもとにQRVが計算され、同じ日付がキャパを超えるとNGとなり
NGが出ればKの日付を1日プラスすることでQRVが一日ずれるのでOKなる
ようにしたいです。

現在はQRVいづれかがNGになればK5にNG表示されるようになっていて、
NGが表示されれば一日ずらして入力しています。
最終目標はC列に日付が入ったと同時にKにも日付が入り、キャパがオーバーすればKの日付を一日ずらすというのが目標です。


説明が下手で申し訳ありません。
 

【73607】Re:循環参照回避
回答  ウッシ  - 13/1/28(月) 13:56 -

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

なにか無視されている感じですけど、「NO」ではなくて「NG」のようなので書き直しました。

シートタブを右クリックしてコードの表示をクリックして出現したシートモジュールに、

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Count > 1 Then Exit Sub
  If Intersect(Target, Range("K10:K500")) Is Nothing Then Exit Sub
  If Range("Q5").Value = "NG" Or _
    Range("R5").Value = "NG" Or _
      Range("V5").Value = "NG" Then
    Application.EnableEvents = False
      Target.Value = Target.Value + 1
    Application.EnableEvents = False
  End If
End Sub

を貼り付けてK10以下に日付を入力してみて下さい。
ダメな場合は、どうダメなのか出来るだけ詳しく説明して下さい。

【73608】Re:循環参照回避
回答  nonoka  - 13/1/28(月) 14:06 -

引用なし
パスワード
   ▼ウッシ さん:
すいません。
NOはNGに直して日付を入力してみましたが、
反応が全くなくどうお返ししていいのかわかりませんでした。

【73609】Re:循環参照回避
回答  ウッシ  - 13/1/28(月) 14:36 -

引用なし
パスワード
   ▼nonoka さん:
こんにちは

>NOはNGに直して日付を入力してみましたが、
>反応が全くなくどうお返ししていいのかわかりませんでした。

そうですか。

計算式とかはセットしたままですよね?

ちょっと間違いがあったので修正します。
差し替えたあと、一旦保存終了して再度開いてから試して下さい。

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Count > 1 Then Exit Sub
  If Intersect(Target, Range("K10:K500")) Is Nothing Then Exit Sub
  If Range("Q5").Value = "NG" Or _
    Range("R5").Value = "NG" Or _
      Range("V5").Value = "NG" Then
    Application.EnableEvents = False
      Target.Value = Target.Value + 1
    Application.EnableEvents = True
  End If
End Sub

入力するのはセル K10:K500 の範囲で、OK、NG が表示されるのはセル、Q5、R5、V5 ですよね?

【73610】Re:循環参照回避
発言  UO3  - 13/1/28(月) 14:39 -

引用なし
パスワード
   ▼nonoka さん:

あぁ、あの続きですか。
で、なんとなくわかったような、でも、わからないような。

現在の手入力と式でのOK/NG表示運用を継続するなら、ウッシさんのコードを試してみてください。
これで目的達成ならいいですね。

ただ、該当のK列のどこかの行の日付をアップしてQ/R/Vの該当行の日付が変更された。
でも、今度は、その変更された日付が、従来からあった日付と一緒にカウントされますから
Q5,R5,V5 は またもや NG になるかもしれないんですよね。

その場合、また、それを(人間の指示で)アップですかね?

なんとなく、それでいいのかなぁ・・・と不安です。

ウッシさんのコードは K列への操作者による日付入力をトリガーにして、その入力を
(必要があれば)変更するというものですが
ちょっと、別線でも考えてみます。

★いずれにしても前スレでお届けした Sample3 で、計画表の K列にも入力日と同じ日付をセットすれば
 少しはらくになるかもですね。

【73611】Re:循環参照回避
回答  nonoka  - 13/1/28(月) 16:08 -

引用なし
パスワード
   ▼ウッシ さん:
K列手入力では日付プラス1になることを確認しました。

要望ですが、
K列はC列に日付が入った段階でC列の日付を基準にK列に自動入力させたいです。
C列は同じ日付が多数入る場合があり、プラス一日で対応出来る場合と出来ない場合が出てきます。プラス1日でダメなら2日、3日とならないでしょうか?

【73612】Re:循環参照回避
回答  ウッシ  - 13/1/28(月) 16:44 -

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

▼nonoka さん:

>K列はC列に日付が入った段階でC列の日付を基準にK列に自動入力させたいです。

C列の日付とK列の日付の相関関係が分かりません。
計算式ではなくてVBAコードで自動入力するという事でしょうか?
取り敢えず、計算式が入っているとして、C列の入力値にプラス1日します。


>C列は同じ日付が多数入る場合があり、プラス一日で対応出来る場合と出来ない場合が出てきます。プラス1日でダメなら2日、3日とならないでしょうか?

順に入力していくのにプラス1日で対応出来ない場合が想像出来ないのですが、Q、R、V列の日付と
C列、K列の相関関係はどうなっているのですか?

永久ループに陥りそうなのでその場合は終了するようにしました。

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim i As Long
  If Target.Count > 1 Then Exit Sub
  If Intersect(Target, Range("C10:C500")) Is Nothing Then Exit Sub
  If Range("Q5").Value = "NG" Or _
    Range("R5").Value = "NG" Or _
      Range("V5").Value = "NG" Then
    Application.EnableEvents = False
    Do Until Range("Q5").Value & _
          Range("R5").Value & _
            Range("V5").Value = "OKOKOK"
      Target.Value = Target.Value + 1
      i = i + 1
      If i > 30 Then
        MsgBox "永久ループしてます。"
        Exit Do
      End If
    Loop
    Application.EnableEvents = True
  End If
End Sub

【73613】Re:循環参照回避
発言  UO3  - 13/1/28(月) 17:12 -

引用なし
パスワード
   ▼nonoka さん:

こんにちは

ウッシさんもご指摘のように、日付の関連がぼんやりとしてます。
nonoka さんにとっては、毎日の生産計画調整業務なので、いわずもがなの、わかりきった関連・・・
と思われるかもしれませんが、部外者から見れば、??? と悩んでしまう。

コードがこうとか、式がこうというのではなく、Q列、R列、V列の各列の全行のそれぞれの日付、
これがその列の6行目にあるキャパ数を超えていると、その日に生産はできないので、超えた分、
翌日生産に回すと、おそらく、こういうことなんですよね?

だけど、ウッシさんも言われるように、じゃぁ明日にした、ところが、もともと明日には(その下の別件で)
計画が入っていて、それをあわせると、そこがキャパオーバー。
なので・・・ということなんでしょうね。 
(この場合、明日に延期したものは明日のままで、むしろさらに翌日にしなければいけないのは、下にあった
 生産計画のほうなんじゃないのかなぁ・・・とも思いますが)

さらに、現在の式ですが(私は関数からきしなので理解が間違っていおるかもしれませんが)

>Q7にはCOUNTIF(Q10:Q500,MODE.SNGL(Q10:Q500))

これは、今いれた日付をもとにしたものがいくつあるかということではなく、全体で最も登場頻度が
多いもののカウントですよね。それは、今いれたものではなく、上のほうのものかもしれないし、
いったんK列に入力したものの変更だった場合は、下にもデータがあるわけで、ずっと下のほうの
日付かもしれない。そうすると、今入れたK列の日付を調整するのは間違っているというか、
調整すべきは上のほうの日付、あるいは下のほうの日付?

なので、私見ですけど、K列に入力して、判定して調整して・・・ということではなく、
バッチ処理として K列の日付をクリアしたうえでC列の10行目の日付をK列の10行目にいれる。
で、自動設定されるQ,R,V列の日付のカウントをキャパ数と照らし合わせながら、オーバーしていれば、
それを(オーバーがなくなるまで)翌日回しにする。
次の行には、上の行で設定した最終的な日付をセット。で、判定して必要なら翌日回しをして。。。

こういうロジックのほうがいいのかもしれません。
この線でコードを書いて見ようかな?と思っています。

【73614】Re:循環参照回避
回答  nonoka  - 13/1/28(月) 18:24 -

引用なし
パスワード
   ▼UO3 さん:

>なので、私見ですけど、K列に入力して、判定して調整して・・・ということではなく、
>バッチ処理として K列の日付をクリアしたうえでC列の10行目の日付をK列の10行目にいれる。
>で、自動設定されるQ,R,V列の日付のカウントをキャパ数と照らし合わせながら、オーバーしていれば、
>それを(オーバーがなくなるまで)翌日回しにする。
>次の行には、上の行で設定した最終的な日付をセット。で、判定して必要なら翌日回しをして。。。
>
>こういうロジックのほうがいいのかもしれません。
>この線でコードを書いて見ようかな?と思っています。


全体的なイメージは上記の通りです。
説明不足で申し訳ありません。
次の行にはとありますが、すべての工程をすべての品番が通過しないので、
最終的な日付をセットするのではなくあくまでC列の基準日からスタートさせたいです。不要な工程は飛ばしますので、加工あがり順が上下入替る場合があるからです。
上の列から下に一つ一つチェックしながらというようにしたいです。

【73615】Re:循環参照回避
回答  nonoka  - 13/1/28(月) 19:00 -

引用なし
パスワード
   ▼ウッシ さん:
コードを入力してみましたが、今度はなにも変化ありません。
コードを入力して、保存して再度立ち上げ、K列に日付を入力しました。
操作方法が違っているのでしょうか?

【73616】Re:循環参照回避
回答  ウッシ  - 13/1/28(月) 19:15 -

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

C列に入力したらって事ですよね?

▼nonoka さん:
>▼ウッシ さん:
>コードを入力してみましたが、今度はなにも変化ありません。
>コードを入力して、保存して再度立ち上げ、K列に日付を入力しました。
>操作方法が違っているのでしょうか?

【73617】Re:循環参照回避
回答  nonoka  - 13/1/28(月) 19:27 -

引用なし
パスワード
   ▼ウッシ さん:
永久ループしました。

【73618】Re:循環参照回避
回答  ウッシ  - 13/1/28(月) 20:40 -

引用なし
パスワード
   ▼nonoka さん:
>▼ウッシ さん:
>永久ループしました。

数式の構成とか、正確に提示されないのでこれ以上は無理ですね。
イベントマクロは合わない感じなんで、U03さんに、お任せします。

【73619】Re:循環参照回避
発言  UO3  - 13/1/28(月) 21:21 -

引用なし
パスワード
   ▼nonoka さん:

実際のQ,R,V列の式が見えないので手探りです。
Q5,R5,V5 のステータスは参照していません。
(動かすときには、シートモジュールのコードは消しておいてください)

Sub Sample計画調整()
  Dim z As Long
  Dim c As Range
  Dim r1 As Range
  Dim r2 As Range
  Dim r3 As Range
  Dim n1 As Long
  Dim n2 As Long
  Dim n3 As Long
  Dim x1 As Long
  Dim x2 As Long
  Dim x3 As Long
  
  
  Dim d As Date
  Dim col As Variant
  
  With Sheets("計画表")
  
    z = .Range("C" & .Rows.Count).End(xlUp).Row - 9 'データ数
    Set r1 = .Range("Q10").Resize(z)
    Set r2 = .Range("R10").Resize(z)
    Set r3 = .Range("V10").Resize(z)
    .Range("K10").Resize(z).ClearContents
    n1 = .Range("Q6").Value
    n2 = .Range("R6").Value
    n3 = .Range("V6").Value
    
    For Each c In .Range("C10").Resize(z)
      With c.EntireRow
        .Range("K1").Value = c.Value '入力日->開始日
        Do
          x1 = WorksheetFunction.CountIf(r1, .Range("Q1").Value)
          x2 = WorksheetFunction.CountIf(r2, .Range("R1").Value)
          x3 = WorksheetFunction.CountIf(r3, .Range("V1").Value)
          If x1 <= n1 And x2 <= n2 And x3 <= n3 Then Exit Do
          .Range("K1").Value = .Range("K1").Value + 1 '翌日
        Loop
      End With
    Next
    
  End With
  
End Sub

【73620】Re:循環参照回避
回答  nonoka  - 13/1/28(月) 22:30 -

引用なし
パスワード
   ▼UO3 さん:
動きました。が止まりません。
現在、INPUTシートからコピーした状態で、K列にはなにも入っていない状態です。

【73621】Re:循環参照回避
お礼  nonoka  - 13/1/28(月) 22:32 -

引用なし
パスワード
   ▼ウッシ さん:
ありがとうございました。
シートにコード入れれること初めて知りました。
勉強します。今後ともよろしくお願い致します。

【73622】Re:循環参照回避
発言  UO3  - 13/1/28(月) 22:56 -

引用なし
パスワード
   ▼nonoka さん:

>動きました。が止まりません。

Q6,R6,V6 に設定してある数値と Q列、R列、V列に記述してある数式をおしえてください。


Q6,R6,V6 の1つでも空白(0) があれば永久ループしますけど?

【73623】Re:循環参照回避
回答  nonoka  - 13/1/28(月) 23:01 -

引用なし
パスワード
   ▼UO3 さん:
QRVはKの日付を基準にADからARの各工程必要日数を足したものが入ってます。

  AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR
10 1       1       1 1 1 1 1 1 1

空白の部分はこの列の品番では不要の工程だからです。
すべての工程に1が入る場合もあります。
上記の場合、9日かかることになり、今日の日付から換算して計算する為です。
例えばC列が1/25だとすると今日が1/28なのでALの現在ALの工程だとわかります。

ご質問のQRVの式は上の経過日数をKの日付に足してNからABに日付を表示しています。

  N  O  P・・・・・                  AB

Q10には $K10+AD10+AE10+AF10+AG10
R10には $K10+AD10+AE10+AF10+AG10+AH10
V10には $K10+AD10+AE10+AF10+AG10+AH10+AI10+AJ10+AK10+AL10

と入ってます。

【73626】Re:循環参照回避
発言  UO3  - 13/1/29(火) 6:20 -

引用なし
パスワード
   ▼nonoka さん:

>Q6,R6,V6 に設定してある数値と Q列、R列、V列に記述してある数式をおしえてください。

Q6,R6,V6 の数値も教えてください。

【73629】Re:循環参照回避
回答  nonoka  - 13/1/29(火) 9:16 -

引用なし
パスワード
   ▼UO3 さん:
>
>Q6,R6,V6 の数値も教えてください。

Q6=6
R6=6
V6=10

この数字を状況に応じて変更したいです。
宜しくお願い致します。

【73633】Re:循環参照回避
発言  UO3  - 13/1/29(火) 12:33 -

引用なし
パスワード
   ▼nonoka さん:

こんにちは

処理しているシート名は 計画表" ですけど、そのシートの Q6,R6,V6 に 6,6,10 と、ちゃんと入っているということですか?
不思議ですねぇ。

コードをアップする時点でちょっと心配になったのでいれておいたチェックロジックをカットしてアップしています。

n3 = .Range("V6").Value

この下に

    If WorksheetFunction.Min(n1, n2, n3) < 1 Then
      MsgBox "Q6,R6,V6には1以上の数値をいれてください"
      Exit Sub
    End If

これをいれても永久ループしますか?

【73634】Re:循環参照回避
回答  nonoka  - 13/1/29(火) 12:56 -

引用なし
パスワード
   ▼UO3 さん:
永久ループしました。
Q6 R6 V6には数字入ってます。
シート名も"計画表"で間違いありません。

C列には日付1/25が入ってます。
その他必要な入力箇所等ありますか?

コードを理解できてませんが、6以下ならCの日付がそのままKに入るイメージでよろしいですよね?

【73635】Re:循環参照回避
発言  UO3  - 13/1/29(火) 13:16 -

引用なし
パスワード
   ▼nonoka さん:

こちらでテスト確認している"計画表"シートは

・C10 〜 C30 に 2013/1/25 (間に空白セルなくすべて埋まっています)
・K10 〜 K30 は、処理の最初でクリアしているので何が入っていてもOK
・Q10〜Q30、R10〜R30、V10〜V30 には、それぞれの 行の K列を参照する式。
 テスト用に簡単に、
 =IF(K10="","",K10+10)
 =IF(K10="","",K10+20)
 =IF(K10="","",K10+30)
 こんな感じで埋めています。
・R6 には 6、Q6 には 6、V6 には 10。

この形で実行させています。なお、9行目、C9〜V9 には適当なタイトルをいれています。
こちらでは、K列の自動調整され、永久ループなく正常終了しています。

不思議ですねぇ。

【73636】Re:循環参照回避
発言  UO3  - 13/1/29(火) 13:18 -

引用なし
パスワード
   ▼nonoka さん:

もしかして・・・

コードアップとともに

「(動かすときには、シートモジュールのコードは消しておいてください)


このようなコメントをしましたが、シートモジュールのChageイベントコードは
消してもらってますよね?

【73637】Re:循環参照回避
回答  nonoka  - 13/1/29(火) 13:23 -

引用なし
パスワード
   ▼UO3 さん:
>
>もしかして・・・
>
>コードアップとともに
>
>「(動かすときには、シートモジュールのコードは消しておいてください)
>」
>
>このようなコメントをしましたが、シートモジュールのChageイベントコードは
>消してもらってますよね?

シートを右クリックしてコードを入れたものを消すということですか?

【73638】Re:循環参照回避
発言  UO3  - 13/1/29(火) 13:36 -

引用なし
パスワード
   ▼nonoka さん:

>シートを右クリックしてコードを入れたものを消すということですか?

そうです。
今、ウッシさんのコードがはいっていると思います。
で、シートの値がへんこうになった瞬間に、この シートモジュールに書かれているコードが
自動実行されます。
もし、そこで永久ループになる要素が残っていれば、永久ループしますね。

【73639】Re:循環参照回避
回答  nonoka  - 13/1/29(火) 14:27 -

引用なし
パスワード
   ▼UO3 さん:
QRVの計算式をU03様の計算式に変更して実行すれば正常に作動するようです。

実際に入っている式は
Q10 
=IF(K10="","",IF(AG10=0,"",$K10+AD10+AE10+AF10+AG10))

R10
=IF(K10="","",IF(AH10=0,"",$K10+AD10+AE10+AF10+AG10+AH10))

V10
=IF(K10="","",IF(AL10=0,"",$K10+AD10+AE10+AF10+AG10+AH10+AI10+AJ10+AK10+AL10))

になります。
この式が悪いのでしょうか・・・。

【73640】Re:循環参照回避
発言  UO3  - 13/1/29(火) 14:34 -

引用なし
パスワード
   ▼nonoka さん:

それと、私の守備範囲ではないのですが、基本的には、この処理は、ウッシさんの
イベント処理でも大丈夫のはずです。

ただし、以下のような場合に永久ループしますので、そこを回避するような手立ては
必要だと思いますが。


1.If Target.Count > 1 Then Exit Sub

 これは、入力セルの数が1つ以上なら、処理をせずに終わります。
 どういうことかというと、たとえば、どこか別の場所に 2013/1/25 が数十行書かれたセル領域をコピーして
 計画表シートのC列に貼り付け。
 複数セルなので、処理せず、終了。
 つまり C列には、同じ日付が数十存在、これをもとにした K,Q,R,V列にも
 同じ日付が数十存在。

 で、あらためて C10 を 2013/1/25 に変更。
 この1行が調整されても、残りの行に数十の同じ日付が残っているので
 何日間、翌日回しにしようが、キャパオーバー。なのでループ。

2.ウッシさんのコードをいれる前の計画表で、すでに C列に同じ日付が数十。
  これをベースにしたほかの列にも同じ日付が数十存在。
  この状態で C10 を変更。 1.と同じく永久ループ。

【73641】Re:循環参照回避
発言  UO3  - 13/1/29(火) 14:40 -

引用なし
パスワード
   ▼nonoka さん:

>QRVの計算式をU03様の計算式に変更して実行すれば正常に作動するようです。

それは、シートモジュールのコードをそのままにしておいても、正常に実行されるということですか?

>この式が悪いのでしょうか・・・。

式には関係ないと思いますが?

【73642】Re:循環参照回避
回答  nonoka  - 13/1/29(火) 14:46 -

引用なし
パスワード
   ▼UO3 さん:
>
>>QRVの計算式をU03様の計算式に変更して実行すれば正常に作動するようです。
>
>それは、シートモジュールのコードをそのままにしておいても、正常に実行されるということですか?
>
>>この式が悪いのでしょうか・・・。
>
>式には関係ないと思いますが?


シートモジュールは消去した状態で作動確認しました。
こちらの式に変更したらループしてしまいます。

【73643】Re:循環参照回避
回答  nonoka  - 13/1/29(火) 15:10 -

引用なし
パスワード
   ▼UO3 さん:

少しわかったような気がします。
QRVともに日付が必ず入っていないとダメですか?
Vは必ず入るのですが、QとRはどちらか一方しか入らないように式を作ってます。
入らない場合は空白になってます。この空白を0にしたら作動しました。

ですが、0だと日付表示で1900/1/0と表示されてしまいます。
条件付き書式で1900/1/0なら文字色白とかで対応出来ると思いますが、
空白の場合もコードで対応できますか?

【73644】Re:循環参照回避
回答  nonoka  - 13/1/29(火) 15:13 -

引用なし
パスワード
   ▼UO3 さん:
0で対応出来るかと思いましたが、
0が6個並んだ瞬間にループに入ってしまいました。

【73645】Re:循環参照回避
発言  UO3  - 13/1/29(火) 15:18 -

引用なし
パスワード
   ▼nonoka さん:

こんにちは

Q,R,V列の式をそちらの式にかえ、D1列〜L列まで、すべて(全行) 1 をいれて実行。
やはり、正常に日付調整されましたが?

以下のコードを標準モジュールに書き、実行してみてください。
ループに入ってしばらくすると ★ のとことが黄色くなって止まります。
その状態で、コードの中の n1 n2 n3 x1 x2 x3 .Range("Q1").Value .Range("R1").Value 
.Range("V1").Value と書いてある部分にマウスを当て、それぞれ、浮かび上がる値をメモして教えていただけませんか?
(メモしたら、VBE画面の 実行(R)-->リセット(R) で処理を終了させてください。

Sub Test()
  Dim z As Long
  Dim c As Range
  Dim r1 As Range
  Dim r2 As Range
  Dim r3 As Range
  Dim n1 As Long
  Dim n2 As Long
  Dim n3 As Long
  Dim x1 As Long
  Dim x2 As Long
  Dim x3 As Long
  Dim y As Long
  
  Dim d As Date
  Dim col As Variant
  
  With Sheets("計画表")
  
    z = .Range("C" & .Rows.Count).End(xlUp).Row - 9 'データ数
    Set r1 = .Range("Q10").Resize(z)
    Set r2 = .Range("R10").Resize(z)
    Set r3 = .Range("V10").Resize(z)
    .Range("K10").Resize(z).ClearContents
    n1 = .Range("Q6").Value
    n2 = .Range("R6").Value
    n3 = .Range("V6").Value
    If WorksheetFunction.Min(n1, n2, n3) < 1 Then
      MsgBox "Q6,R6,V6には1以上の数値をいれてください"
      Exit Sub
    End If
    For Each c In .Range("C10").Resize(z)
      With c.EntireRow
        .Range("K1").Value = c.Value '入力日->開始日
        y = 0
        Do
          x1 = WorksheetFunction.CountIf(r1, .Range("Q1").Value)
          x2 = WorksheetFunction.CountIf(r2, .Range("R1").Value)
          x3 = WorksheetFunction.CountIf(r3, .Range("V1").Value)
          If x1 <= n1 And x2 <= n2 And x3 <= n3 Then Exit Do
          .Range("K1").Value = .Range("K1").Value + 1 '翌日
          y = y + 1
          If y > 100 Then
            Stop      '★
          End If
        Loop
      End With
    Next
    
  End With
  
End Sub

【73646】Re:循環参照回避
発言  UO3  - 13/1/29(火) 15:23 -

引用なし
パスワード
   ▼nonoka さん:

>少しわかったような気がします。
>QRVともに日付が必ず入っていないとダメですか?

こちらでも再現しました。
調べてみますね。

【73647】Re:循環参照回避
回答  nonoka  - 13/1/29(火) 15:27 -

引用なし
パスワード
   ▼UO3 さん:

メモ Range("K1").Value=2013/05/06 です。

【73648】Re:循環参照回避
発言  UO3  - 13/1/29(火) 15:31 -

引用なし
パスワード
   ▼nonoka さん:

こんにちは

現在の式のままでも以下でOKだと思います。

x1 = WorksheetFunction.CountIf(r1, .Range("Q1").Value)
x2 = WorksheetFunction.CountIf(r2, .Range("R1").Value)
x3 = WorksheetFunction.CountIf(r3, .Range("V1").Value)

この3行を

x1 = 0
x2 = 0
x3 = 0
If Len(.Range("Q1").Value) > 0 Then x1 = WorksheetFunction.CountIf(r1, .Range("Q1").Value)
If Len(.Range("R1").Value) > 0 Then x2 = WorksheetFunction.CountIf(r2, .Range("R1").Value)
If Len(.Range("V1").Value) > 0 Then x3 = WorksheetFunction.CountIf(r3, .Range("V1").Value)

このように置換。

お試しください。

【73650】Re:循環参照回避
回答  nonoka  - 13/1/29(火) 16:30 -

引用なし
パスワード
   ▼UO3 さん:
出来ました。私がやったわけじゃないのに、感動しちゃいました。
ありがとうございました。

ようやく形になりました。
長い間おつきあい頂きありがとうございました!

このままでも大丈夫なのですが、わがままですが、2点追加したいです。

1.既にデータが入っていて追加した場合、最初からスタートしますが、K列にすでに日付が入っている場合はK列の未入力部より計算することは可能でしょうか?
結果は同じなのでこのままでもシステム上問題ないのですが、今後データが蓄積されたとき、最上段からの計算では少々時間が掛かるのではと思いまして。

2.前回下記コピーのコードをご教授頂きましたが、
コピーした瞬間に自動で日付を入れたいのですが、
ただ、合成すればいいというものでもないですよね?

お忙しいところ申し訳ありませんが、お時間ございましたら、ご対応頂きますようお願い申し上げます。

前回コピーのコードです。
Sub INPUT開始()
  Dim n1 As Long
  Dim n2 As Long
  Dim nx As Long
  Dim n As Long
  Dim shTo As Worksheet
  Dim z1 As Long
  Dim z2 As Long
  Dim x As Long
  Dim c As Range

  Set shTo = Sheets("計画表")

  With Sheets("INPUT")
    Call Input消去
    z1 = 7         'INPUTのコピー開始行
    n1 = Val(.Range("M5").Value)
    n2 = Val(.Range("I5").Value)
    If n1 = 0 Or n2 = 0 Then
      MsgBox "M5とI5に正しい数字をいれてくださいね"
      Exit Sub
    End If
 
    n = n1 \ n2
    nx = n1 Mod n2
    If nx > 0 Then n = n + 1
   
    If n < 1 Then
      MsgBox "M5またはI5の数字が正しくないのでは?"
      Exit Sub
    End If
 
    x = 7          'コピー列数
    If n > 0 Then
      z2 = shTo.Range("C" & shTo.Rows.Count).End(xlUp).Row + 1
      .Range("C5").Resize(, x).Copy .Range("C" & z1).Resize(n)
      .Range("C5").Resize(, x).Copy shTo.Range("C" & z2).Resize(n)
      If nx > 0 Then
        .Range("I" & z1).Offset(n - 1).Value = nx
        shTo.Range("I" & z2).Offset(n - 1) = nx
      End If
    End If
 
  End With

End Sub

【73651】Re:循環参照回避
発言  UO3  - 13/1/29(火) 16:51 -

引用なし
パスワード
   ▼nonoka さん:

ほっとしました。

>1.既にデータが入っていて追加した場合、最初からスタートしますが、K列にすでに日付が入っている場合はK列の未入力部より計算することは可能でしょうか?
>結果は同じなのでこのままでもシステム上問題ないのですが、今後データが蓄積されたとき、最上段からの計算では少々時間が掛かるのではと思いまして。

K列の未入力部分から というより、K列の未入力部分を という制御のほうが
いいかもしれませんね。途中で空白(操作者による間違い)があればそれも処理。

>2.前回下記コピーのコードをご教授頂きましたが、
>コピーした瞬間に自動で日付を入れたいのですが、

コピーした瞬間に、K列にも入れるということですか?
できますよ。
さらにいえば、その後、今回の自動調整と連動させることもできますが。

【73652】Re:循環参照回避
回答  nonoka  - 13/1/29(火) 17:01 -

引用なし
パスワード
   ▼UO3 さん:

>>1.既にデータが入っていて追加した場合、最初からスタートしますが、K列にすでに日付が入っている場合はK列の未入力部より計算することは可能でしょうか?
>>結果は同じなのでこのままでもシステム上問題ないのですが、今後データが蓄積されたとき、最上段からの計算では少々時間が掛かるのではと思いまして。
>
>K列の未入力部分から というより、K列の未入力部分を という制御のほうが
>いいかもしれませんね。途中で空白(操作者による間違い)があればそれも処理。
その方が良いと思います。お願いします。

>
>>2.前回下記コピーのコードをご教授頂きましたが、
>>コピーした瞬間に自動で日付を入れたいのですが、
>
>コピーした瞬間に、K列にも入れるということですか?
>できますよ。
>さらにいえば、その後、今回の自動調整と連動させることもできますが。

自動調整と連動させてくれるとうれしいです。
出来る限り、計画表は見るだけのシートにしたいので、計画表でマクロの実行を指示する操作をなくしたいと思っています。
次々とお願いして申し訳ありません。

【73653】Re:循環参照回避
発言  UO3  - 13/1/29(火) 20:21 -

引用なし
パスワード
   ▼nonoka さん:

こんばんは

そちらがアップしたINPUT開始はバージョンが古いですね。
最新のものは変数の p1 とか p2 が追加されたものです。
Input消去 は変更有りませんが、以下にフルセットを。
なお、計画調整は、サブプロシジャ化しています。
(マクロとして選ぶことはできなくしてあります)

Sub INPUT開始()
  Dim n1 As Long
  Dim n2 As Long
  Dim nx As Long
  Dim n As Long
  Dim p1 As Long
  Dim p2 As Long
  Dim shTo As Worksheet
  Dim z1 As Long
  Dim z2 As Long
  Dim x As Long
  Dim c As Range

  Set shTo = Sheets("計画表")

  With Sheets("INPUT")
    Call Input消去
    z1 = 7         'INPUTのコピー開始行
    n1 = Val(.Range("F5").Value)
    n2 = Val(.Range("H5").Value)
    If n1 = 0 Or n2 = 0 Then
      MsgBox "F5とH5に正しい数字をいれてくださいね"
      Exit Sub
    End If

    n = n1 \ n2
    nx = n1 Mod n2
    If nx > 0 Then n = n + 1
    p1 = n1 \ n
    If n1 Mod n > 0 Then p1 = p1 + 1
    p2 = n1 - p1 * (n - 1)
 
    If n < 1 Then
      MsgBox "F5またはH5の数字が正しくないのでは?"
      Exit Sub
    End If

    x = 6          'コピー列数
    If n > 0 Then
      z2 = shTo.Range("C" & shTo.Rows.Count).End(xlUp).Row + 1
      .Range("C5").Resize(, x - 1).Copy .Range("C" & z1).Resize(n)
      .Range("C5").Resize(, x - 1).Copy shTo.Range("C" & z2).Resize(n)
      .Range("H" & z1).Resize(n - 1).Value = p1
      shTo.Range("H" & z2).Resize(n - 1).Value = p1
      .Range("H" & z1).Offset(n - 1).Value = p2
      shTo.Range("H" & z2).Offset(n - 1) = p2
    End If

  End With
  
  Call 計画調整

End Sub

Sub Input消去()
  With Sheets("INPUT")
    Intersect(.Range("A1", .UsedRange).Offset(6), .Columns("C:H")).ClearContents
  End With
End Sub

Private Sub 計画調整()
  Dim z As Long
  Dim c As Range
  Dim r1 As Range
  Dim r2 As Range
  Dim r3 As Range
  Dim n1 As Long
  Dim n2 As Long
  Dim n3 As Long
  Dim x1 As Long
  Dim x2 As Long
  Dim x3 As Long
  
  
  Dim d As Date
  Dim col As Variant
  
  With Sheets("計画表")
  
    z = .Range("C" & .Rows.Count).End(xlUp).Row - 9 'データ数
    Set r1 = .Range("Q10").Resize(z)
    Set r2 = .Range("R10").Resize(z)
    Set r3 = .Range("V10").Resize(z)
    n1 = .Range("Q6").Value
    n2 = .Range("R6").Value
    n3 = .Range("V6").Value
    
    For Each c In .Range("C10").Resize(z)
      With c.EntireRow
        If Len(.Range("K1").Value) = 0 Then   'K列未セットのものだけ
          .Range("K1").Value = c.Value '入力日->開始日
          Do
            x1 = 0
            x2 = 0
            x3 = 0
            If Len(.Range("Q1").Value) > 0 Then x1 = WorksheetFunction.CountIf(r1, .Range("Q1").Value)
            If Len(.Range("R1").Value) > 0 Then x2 = WorksheetFunction.CountIf(r2, .Range("R1").Value)
            If Len(.Range("V1").Value) > 0 Then x3 = WorksheetFunction.CountIf(r3, .Range("V1").Value)
            If x1 <= n1 And x2 <= n2 And x3 <= n3 Then Exit Do
            .Range("K1").Value = .Range("K1").Value + 1 '翌日
          Loop
        End If
      End With
    Next
    
  End With
  
End Sub

【73656】Re:循環参照回避
お礼  nonoka  - 13/1/29(火) 22:48 -

引用なし
パスワード
   ▼UO3 さん:

出来ました。完璧です!
スマートなシステムに生まれ変わりました。
改めてVBAが便利でエクセルには必要なスキルだと気づかされました。
VBAは2倍3倍とエクセルの幅が広がることを思い知らされ、
逆にエクセルだけで、ここまで出来るとは思っていませんでした。
こういうのはアクセスの分野だと思ってました。。。

ホント、長い間おつきあいくださり、ありがとうございました。
これで、終了といきたいところですが、実際使って行くと、改善する点も
出てくるかと思いますので、このシステムに関しては、このスレから質問させて頂きます。これからも宜しくお願い申し上げます。
本当にありがとうございました!!

【73705】Re:循環参照回避
質問  nonoka  - 13/2/5(火) 20:19 -

引用なし
パスワード
   ▼UO3 さん:
先日は大変お世話になりました。
質問はこの前の続きです。

2つ質問があります。

1つ目
シート名 Schedule(以前は計画表というシート名でした)の中の表に
別シートから入力されたデータが積み上げられます。
表の開始範囲は10行目からデータが積み上げられます。
その票のH列にT1やT2、P2などのコードが入力されます。
入力されたら
シート名 process のD5よりしたに同じようにT1なのどコードがあり
マッチすればその行のE〜R(14個)のセルを
シート名 Schedule のAD〜AQ(14個)にコピーしたいです。

2つ目
シート名 Schedule でA〜AUに表があります。開始行は10行目です。
A列に1が入力されたらその行を
別シート SHIPPED のA4行目から、値だけ移動させたいです。
コピーだと数式が入っていたりするので値コピーしたいです。

目的はScheduleシートから完了したものをSHIPPEDに移したいからです。
本音は別ブックの方が良いです。
別ブックの場合はブック名もSHIPPED シート名同様で良いです。

お手数をお掛けいたしますが、ご教授宜しくお願い申し上げます。

【73712】Re:循環参照回避
発言  UO3  - 13/2/6(水) 11:17 -

引用なし
パスワード
   ▼nonoka さん:

こんにちは

以前の計画表はH列が、投入数だったように記憶しているんだけど、そこが T1やT2やP2?
で【入力されます】ということは、以前のH列はINPUTシートのH列をベースに調整された数値が
計画表のH列に転記されたんだけど、そうではなく、Scheduleシートの上でProcessシートとは
関係なく、独自に入力されるということですか?

2つめ、これはコピーですか?それとも移動(元データからは削除)ですか?

【73713】Re:循環参照回避
発言  UO3  - 13/2/6(水) 11:32 -

引用なし
パスワード
   ▼nonoka さん:

追加で

2つのシートのコード列ですが、同じコードが重複して存在しますか?
それともユニークですか?
Schedule側で重複する場合は、Scheduleシートのどの行に転記しますか?
Process側で重複する場合は、Schedule側、上書きですか?

【73715】Re:循環参照回避
発言  UO3  - 13/2/6(水) 12:07 -

引用なし
パスワード
   ▼nonoka さん:

とりあえず「1つめ」を。
★要件が、以前のものとまったく異なるテーマですから、いったん解決でクローズして
 トピをわけられたほうがいいのでは?
 フンドシ状態で、トピをあけるのにも苦労しますので。

Schedule側で重複があればあと勝ち、Process側で重複あればSchedule側、上書き
という仕様にしています。

Sub ひとつ目()
  Const fCode As String = "D"   'Processシートのコード列
  Const fLine As Long = 5     '        データ開始行
  Const tCode As String = "H"   'Scheduleシートのコード列
  Const tLine As Long = 10     '        データ開始行
  
  Dim dic As Object
  Dim c As Range
  Dim x As Long
  Dim v As Variant
  Dim i As Long
  Dim j As Long
  Dim shTo As Worksheet

  Set shTo = Sheets("Schedule")
  Set dic = CreateObject("Scripting.Dictionary")
  
  x = shTo.Range(tCode & shTo.Rows.Count).End(xlUp).Row
  v = shTo.Range("AD" & tLine & ":AQ" & x).Formula
  
  For Each c In Range(shTo.Range(tCode & tLine), shTo.Range(tCode & x))
    dic(c.Value) = c.Row - tLine + 1
  Next
  
  With Sheets("Process")
    For Each c In Range(.Range(fCode & fLine), .Range(fCode & .Rows.Count).End(xlUp))
      If dic.exists(c.Value) Then
        i = dic(c.Value)
        For j = 1 To UBound(v, 2)
          v(i, j) = c.EntireRow.Range("E1").Offset(, j - 1).Value
        Next
      End If
    Next
  End With
  
  shTo.Range("AD" & tLine).Resize(UBound(v, 1), UBound(v, 2)).Value = v
  shTo.Select
  
  MsgBox "転記完了"

End Sub

【73716】Re:循環参照回避
回答  nonoka  - 13/2/6(水) 12:57 -

引用なし
パスワード
   ▼UO3 さん:
わかりました!!
新規でトピ立ち上げます。

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