『別シートのカレンダーに記録を日々転記』(HIRO) シート名、山田と、鈴木があります。 ここに日々の営業成績の結果を毎回上書きしていきます。各人シートを毎日上書きしつ つその一部の数字を、シート名「合計」のカレンダーの各日付に転記していきたい です。 なお、シート名「合計」は、カレンダーになっており、D7〜AE7に2/1〜2/28までの日付 が入っています。その中で2/1の山田の結果は、D9(=山田!I205)とD10の(=山田!I207+ 山田!I210)の数字を持ってきたいです。鈴木の結果は、、D11(=鈴木!I205)とD12の(= 鈴木!I207+鈴木!I210)の数字を持ってきたいです。2/2になると、各データはE列に転記 していきます。 各人シートは上書きしつつも、カレンダーの曜日セルはずれながら数字が入っていく。 こんなことをスマートにする方法はありますでしょうか? どうか。教えてください。よろしくお願いします。 < 使用 Excel:Excel2010、使用 OS:Windows8 > ---- 毎日データを上書きし、その日に依存した処理というのはなかなか危険な運用 という気がしますが、日をまたいで(昨日の分、先週の分など)入力をする 事は無いのでしょうか。 一応当日の分は当日入力する前提で、 ThisWorkbook モジュールに Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If Intersect(Target, Range("I205,I207,I210")) Is Nothing Then Exit Sub Dim dstRow As Long Select Case Sh.Name Case "山田": dstRow = 9 Case "鈴木": dstRow = 11 Case Else: Exit Sub End Select Dim dstDay As Range For Each dstDay In Worksheets("合計").Range("D7:AH7") If dstDay.Value2 = CLng(Date) Then Application.EnableEvents = False Select Case Target.Row Case 205 Worksheets("合計").Cells(dstRow, dstDay.Column).Value = Sh.Range("I205").Value Case 207, 210 Worksheets("合計").Cells(dstRow + 1, dstDay.Column).Value = Sh.Range("I207").Value + Sh.Range("I210").Value End Select Application.EnableEvents = True Exit Sub End If Next MsgBox "今日の日付がありません" End Sub 日付は Find で見つけられればスマートだと思いますが、合計シートの日付の 書式が不明なので直接比較にしています(下のページは秀作ですね)。 http://officetanaka.net/excel/vba/tips/tips131b.htm http://officetanaka.net/excel/vba/tips/tips131c.htm http://officetanaka.net/excel/vba/tips/tips131d.htm (Mook) 2014/02/09(日) 14:34