Excel VBA質問箱 IV

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

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


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

【62916】過去データの修正を当月に反映させたい ゆっこ 09/9/16(水) 9:44 質問[未読]
【62917】Re:過去データの修正を当月に反映させたい つるりん 09/9/16(水) 11:46 回答[未読]
【62918】Re:過去データの修正を当月に反映させたい ゆっこ 09/9/16(水) 14:48 お礼[未読]

【62916】過去データの修正を当月に反映させたい
質問  ゆっこ  - 09/9/16(水) 9:44 -

引用なし
パスワード
   Windows XP
エクセル2003を使用しています。

以下のようなマクロを作成し、
毎月、前月シートをコピーして、
最新データを作成しています。
8月には、4月〜8月までのシートが並ぶことになります。

ですが、一度、最新シートを作成してしまうと、
前月以前のDim 件数累計など、
過去のシートの数値を変更した場合に、
最新シートのデータに変更した数値が正しく反映されません。

過去のシートの数値を変更しても、
最新シートまで順次連動して、正しい数値を反映させるには、
どのようにすればよいか、ご教示いただけると有り難いです。

どうぞよろしくお願い致します。

======================

Sub Macro1()


Dim shtNm As String
Dim newShtNm As String
Dim mySht As Worksheet
Dim i As Long


shtNm = ActiveSheet.Name
  If Val(shtNm) + 1 > 12 Then
    newShtNm = "1"
  Else
    newShtNm = Val(shtNm) + 1
  End If
  ActiveSheet.Copy after:=ActiveSheet
  Set mySht = ActiveSheet
  mySht.Name = newShtNm & "月度"
  
 
  Dim 件数累計
  
  件数累計 = Range("B19")
  Range("B18").FormulaR1C1 = 件数累計
       
  見積累計 = Range("E19")
  Range("E18").FormulaR1C1 = 見積累計
  
  工事金額累計 = Range("F19")
  Range("F18").FormulaR1C1 = 工事金額累計
  
  予算累計 = Range("H19")
  Range("H18").FormulaR1C1 = 予算累計

End Sub

【62917】Re:過去データの修正を当月に反映させたい
回答  つるりん  - 09/9/16(水) 11:46 -

引用なし
パスワード
       累計部分の数式を常に前のシートの累計を
参照する数式にすればいいのではないですか?

Dim str As String

With ActiveSheet
  str = .Previous.Name
  .Range("B19") = "=" & str & "!B19+B18"
End With
のように

【62918】Re:過去データの修正を当月に反映させたい
お礼  ゆっこ  - 09/9/16(水) 14:48 -

引用なし
パスワード
   ▼つるりん さん:

早速にありがとうございました!

まさに、私が望んでいたことです。

そうしたかったのに、コードが上手く作れなくて、
違うコードを使っていました。

一挙解決できました。

ありがとうございました。

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