[[20110304152533]] 『変更したデータの履歴を別のシートに残す方法が分』(やよい) ページの最後に飛ぶ

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

 

『変更したデータの履歴を別のシートに残す方法が分かりません』(やよい)

まとめのシートから別のシートへデータを履歴として残したいのですが分かりません。
どなたかご教授お願いします。
(Excel2003を使用)

こんな感じのファイルです↓

"まとめ"シートの表

       F      G         H       I 
      #001    #002    #003    #004
10 Ver   1      1         2         1
11 日付  2010/10/5   2010/11/2   2010/10/5   2010/12/1
12 担当  佐藤        山田    佐藤    鈴木
13 値   3000    450     2510        800

たとえば、F列のデータが一つでも変更になった場合
別に作成した"#001"のシートへデータが反映され、
履歴として隣の列に残るというような

    ↓↓

"#001"シートの表

       F      G         H       I 
      現在     1       2       3
10 Ver   1      1         2         3
11 日付  2010/10/5   2010/11/5   2010/12/5   2010/12/20
12 担当  佐藤        佐藤    佐藤    佐藤
13 値   3000    3000    3000        3500

というような感じで"まとめ"シートからG、H列も同様に#002、#003〜と変更したデータの履歴を残したいです。

説明が上手くできていないかもですがよろしくお願いします。


 #001シートのF列に列挿入して、まとめシートのF列をコピーペーストでは?

 自動でという事ならVBAになると思います。
 (momo)

やはり説明が足りてなかったようですみません。

#001〜#035まであるため自動で履歴が残せるようにしたいと思ってます。
VBAで可能でしょうか?


 可能ですよ。
 Worksheet_ChangeイベントでTargetの列の9行目の値のシートに
 F列を挿入してTarget列の10〜13行をコピーペーストするだけです。
 (momo)

またまたすみません。 

#001〜#035分のシートへの履歴を残す方法としてどういうVBAを作成するのか、 

VBAはまったくわからないため、詳細を教えていただけないでしょうか。 

よろしくお願いします!!


 まったく解らないままですと、どこから説明して良いのかわかりませんが
 上の回答で書かれた単語くらいは調べてみましたか?
 あとは、1つの列だけでもマクロ記録を取ってみるくらいはしてみましたか?
 (momo)

 もう少し補足。

 仮に#001の列をやるとしてマクロ記録を取ると

 Sub Macro1()
    Selection.Copy
    Sheets("#001").Select
    Range("F10").Select
    Selection.Insert Shift:=xlToRight
    Application.CutCopyMode = False
 End Sub

 というコードが生成されますね。
 このコードを見やすく整理すると

 Sub Macro2()
    Selection.Copy
    Sheets("#001").Range("F10").Insert Shift:=xlToRight
 End Sub

 こうなります。
 ですが、これではコピー範囲がSelectionで選択した範囲なので
 コピーする範囲をまとめシートのF11:F14の範囲に変更します。

 Sub Macro3()
    Sheets("まとめ").Range("F11:F14").Copy
    Sheets("#001").Range("F10").Insert Shift:=xlToRight
 End Sub

 するとこうなりますよね?
 ここで、まとめシートの変更した場所によって変化するのが
 >Sheets("まとめ").Range("F11:F14").Copy
 の"まとめ"と"F11:F14"
 あとは
 >Sheets("#001").Range("F10").Insert Shift:=xlToRight
 の"#001"です。

 ここを可変できるようにして
 セル内容が変化した時のイベントであるWorksheet_Changeイベントを使って
 変化したセルであるTargetで可変出来るようにすれば良いです。

 (momo)

コメント返信:

[ 一覧(最新更新順) ]


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