よねさんのWordとExcelの小部屋 なんでも掲示板

HOME HELP 新規作成 新着記事 ツリー表示 トピック表示 検索 過去ログ

ツリー一括表示

Nomal 計算結果を履歴として残す /佐藤 (19/04/12(Fri) 11:38) #13370
Nomal Re[1]: 計算結果を履歴として残す /よねさん (19/04/13(Sat) 09:41) #13372
  └Nomal Re[2]: 計算結果を履歴として残す /佐藤 (19/04/16(Tue) 10:11) #13373


親記事 / ▼[ 13372 ]
■13370 / 親階層)  計算結果を履歴として残す
□投稿者/ 佐藤 -(2019/04/12(Fri) 11:38:47)
    よねさん。ご教授お願いします。
    計算結果を指定列に履歴として残したい場合、どうすればよいでしょうか?

    A1に数値を入力
    F1に=A1*1.1の数式
    G1に=ROUNDUP(F1,-2)の数式

    A1で入力した数値をL列に履歴を残す
    G1の計算結果の値のみをN列に履歴を残す

    またA1に入力した数値がL列の履歴にあった場合、メッセージを出したいです。

    よろしくお願いします。
[ □ Tree ] 返信/引用返信 削除キー/

▲[ 13370 ] / ▼[ 13373 ]
■13372 / 1階層)  Re[1]: 計算結果を履歴として残す
□投稿者/ よねさん -(2019/04/13(Sat) 09:41:07)
    ワークシートのチェンジイベントを利用すればよいと思います。
    
    Excel(エクセル) VBA入門:ワークシートのイベント
    http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_event.html
    
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim lRow As Long, nRow As Long
    Dim i As Long
        If Intersect(Target, Range("A1")) Is Nothing Then
            Exit Sub
        Else
        Application.EnableEvents = False
            lRow = Cells(Rows.Count, 12).End(xlUp).Row
            nRow = Cells(Rows.Count, 14).End(xlUp).Row
            If Application.WorksheetFunction.CountIf(Range("L1:L" & lRow), Range("A1").Value) >= 1 Then
                MsgBox ("A1に入力した数値はL列の履歴にあります")
            Else
                If Range("L1").Value = "" Then lRow = 0
                If Range("N1").Value = "" Then nRow = 0
                
                Cells(lRow + 1, 12).Value = Range("A1").Value
                Cells(nRow + 1, 14).Value = Range("G1").Value
            End If
        End If
        Application.EnableEvents = True
        
    End Sub
    
    

[ 親 13370 / □ Tree ] 返信/引用返信 削除キー/

▲[ 13372 ] / 返信無し
■13373 / 2階層)  Re[2]: 計算結果を履歴として残す
□投稿者/ 佐藤 -(2019/04/16(Tue) 10:11:52)
    よねさん、ありがとうございます!思い通りのものが出来ました。御礼まで。
[ 親 13370 / □ Tree ] 返信/引用返信 削除キー/


Pass/

HOME HELP 新規作成 新着記事 ツリー表示 トピック表示 検索 過去ログ

- Child Tree -