[[20041023165624]] 『同一セル内での累積の計算』(Beet) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『同一セル内での累積の計算』(Beet)

 過去の質問で『同一セル内での累積の計算』という
 のを拝見いたしまして弥太郎様のお示しになったコ
 ードを使わせていただきうまく行ったのですが同じ
 シート内に『累積の計算』を複数行設置したいので
 すが コードをどのようにすればよろしいでしょうか。

 使わせていただいたコードは次のとおりです。
  Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then End
    If Range(Target.Address) <> Range("B2") Then End
    Application.EnableEvents = False
    Range("C2") = Range("C2") + Target
    Application.EnableEvents = True
   End Sub
 この中身を単純にコピーしてRange("B2") をRange("B3") などと
 してももだめ見たいなのですが、ご指導をお願いします。
 (Beet)


 上記のコードは
If Range(Target.Address) <> Range("B2") Then End の部分がB2セルに限定されているようですね。

 どこのセルで使いたいかを提示していただけますか。
 B3に変えればB3に入力したものが、C2セルに累計されるようになりますね。
 (川野鮎太郎)


 川野様、地震の中お答えいただきまして誠にありがとうございます。
      A         B        C    D       E
    日付     商品     数      単価    合計
  1   10/1      A         
  2   10/1      B
  3   10/1      C
 このように同じことを数行に渡ってやりたいのですが・・・
 よろしくお願いいたします。
(Beet)


 えっとー・・あのー・・・、上の表でどの部分を入力するのでしょうか。
 どこに入力して、どのようになりたいのかを書いていただかないと・・・。
※私も基本的には、同一セルでの累計はお勧めしませんが・・。
というか、自分では絶対に使いません(^_^A;
なぜならば・・・・・      入力ミスが多いからです! 残念!!_/ ̄|○ il||li
 (川野鮎太郎)


 ごめんなさい。ひどく間違えました。
	個数	累計	単価	合計
りんご	n	30	500	15000
みかん	n	24	500	12000
 ・   ・    ・    ・     ・
 ・   ・    ・    ・     ・
 ・   ・    ・    ・     ・
こういう風にできないかと思っています。
(Beet)

 川野さんの仰る事はVBAでリンゴの個数の所に数字を入れ累計を加算させていくのは
3と入れたつもりで2を打ち込んでしまった時、修正に手間がかかる、
まだ、気が付けば良いのですが、気が付かなければ最悪です。
どこでどう間違ったのか分らない?どうにもならない。
VBAを使わずになら、例えばSheet1に日付、品名、個数などをDBとして、入力していきます。
Sheet2にSUMIF関数、ピボットテーブルなどを利用して集計する。方法が良いかと思います。
VBAを利用するなら上のコードにプラスして各品名に対して、打ち込んだ数字が一覧として
表示されるようにした方が良いと思います。
(ケン)

 
   Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then End
    If Target.Column <> 2 Then End
    Application.EnableEvents = False
    Target.Offset(,1).value=Target.value+Target.Offset(,1).value
    Application.EnableEvents = True
   End Sub

 かしら?
 (Don)

 衝突しました。
 先ほどの書いたものを書いてみました。参考程度に・・
   A       B        C        D        E        F     G     H
1 	個数	累計	単価	合計           品名  個数
2 りんご	n	30	500	15000
3 みかん	n	24	500	12000
として、

 Private Sub Worksheet_Change(ByVal Target As Range)
    Dim LastR As Long

    LastR = Range("G65536").End(xlUp).Row + 1

    If Target.Count > 1 Then End
    If Target.Column <> 2 Then End

    Application.EnableEvents = False

    Target.Offset(, 1) = Target.Offset(, 1) + Target.Value
    Range("G" & LastR).Value = Target.Offset(, -1).Value
    Range("H" & LastR).Value = Target.Value

    Application.EnableEvents = True
 End Sub
こんな感じにします。他シートに転記しても良いかもです。
(ケン)参考程度に・・・

 皆様、どうもありがとうございました。
 Don様の教えていただいたコードで私の求めていた事はできました。
 でも、川野様、ケン様の仰るように「個数の所に数字を入れ累計を
 加算させていくのは3と入れたつもりで2を打ち込んでしまった時、
 修正に手間がかかる」を考えますとごもっともだと思いました。
 今一度よーく考えて見ます。
 ありがとうございました。
 (Beet)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.