[[20040531130009]] 『日報の累計』(まろまろ) ページの最後に飛ぶ

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

 

『日報の累計』(まろまろ)

日付は自動的に毎日変わる同じシートで、日報を作成しています。
その中で、新規来客数と再来数を報告しますが、当日の合計計算しかできず、今までの累計は手直しして入力しなければなりません。
つまり現在は、F22(新規来客数)、F23(再来数)、F24(本日来客数合計)、G22(新規来客数累計)、G23(再来数累計)、G24(総計)といった表で、
F24=F22+F23、G24=G22+G23の計算になっています。
ですから、F22に2と入力すると、G22の数字に2を足しているわけです。
これを、F22に数字を入力するとG22やG24の累計が、F23に数字を入力するとG23やG24の累計が自動的に計算される表にしたいのです。
おわかりいただけたでしょうか?どなたかわかる方、ぜひ教えて下さい!よろしくお願いします。


 昨日までの新規来客数と再来客数の累計はどこに入力されてるんでしょうか?
もし昨日までの新規来客数がG20 再来客数がG21にあったとして
新規来客者合計 G22=G20+F22
再来客数合計   G23=G21+F23
総計           G24=G22+G23  になると思いますが。
たぶん、オオボケですよね。
こんな答えを望まれてないですよね。
質問されてる意味がいまいち理解できません。スミマセン。(KI) 


 ひょっとしてこんな感じかな?
 A1に更新と入力されている時だけ累計が更新されます。
 というより本当はどこかにコマンドを作って更新したい時だけ実行する様に
 した方がいいような気がするんですけど、、、まぁ、とりあえず
 シートの見出しを右クリック→コードを表示させてそこに貼り付けて下さい。
 例によって外してたら、ごめんなさいです。
 (koko)
 Private Sub Worksheet_Change(ByVal Target As Range)
 Application.EnableEvents = False
 If Range("A1").Value = "更新" Then
 Range("G23").Value = Range("F23").Value + Range("G23").Value
 End If
 Application.EnableEvents = True
 End Sub


まろまろです。レスありがとうございますー!

 すごいすごい!イメージはピッタリです!
 けれど、これではF24に入力した数字もG23に加算されてしまいます。うまく伝えられていませんでした。
 本当は…

 F23(本日新規来客数)を更新→G23(新規来客合計)に累計
 F24(本日再来数)を更新→G24(再来数合計)に累計
 F23+F24=F25(本日合計)
 G23+G24=G25(累計合計)

 という計算にしたいんです。
 F25とG25のセルは普通に上記の計算式でいいですよね?
 あとはG23とG24の部分です。
 うまく伝わったでしょうか?

 自分勝手に以下のようにしたりもしました。これでいいのでしょうか?

 Private Sub Worksheet_Change(ByVal Target As Range)
 Application.EnableEvents = False
 If Range("A1").Value = "更新" Then
 Range("G23").Value = Range("F23").Value + Range("G23").Value
 Range("G24").Value = Range("F24").Value + Range("G24").Value
 End If
 Application.EnableEvents = True
 End Sub

 試してみたら、思い通りに出来たので、喜んでいたら、
 一度閉じたファイルをまた開いて、何度も繰り返して試してたら、
 F23を入力して更新してもG23に反映されなくなってしまいました。
 コードは変えていないのですけれど…。(TT) 助けて下さい!!
 もしかして、これは1日1回しか更新できないものなのでしょうか?

 また「どこかにコマンドを作って更新したい時だけ実行する様にした方がいい」
 と言われる方法も、参考にしたいので、具体的に知りたいのですけど…。
 教えて頂けないでしょうか?
 お手数をかけますが、宜しくお願いします。


 >もしかして、これは1日1回しか更新できないものなのでしょうか?

 現在のシートに↓を貼り付けて一度ダブルクリックしてから再度実行して下さい。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Application.EnableEvents = True
End Sub

 >また「どこかにコマンドを作って更新したい時だけ実行する様にした方がいい」
 >と言われる方法も、参考にしたいので、具体的に知りたいのですけど…。
 >教えて頂けないでしょうか?
 >お手数をかけますが、宜しくお願いします。

 違うシートに↓を貼り付けて更新というマクロを登録して実行して下さい。
Sub 更新()
If Range("A1").Value = "更新" Then
Range("G23").Value = Range("F23").Value + Range("G23").Value
Range("G24").Value = Range("F24").Value + Range("G24").Value
End If
End Sub
 登録方法は↓を参考にして下さい。
 ↓(新)VBA入門Win
http://www.excel.studio-kazu.jp/lib/e4a/e4a.html
 尚、只今大変取り込み中につきご返事が遅れました事を深くお詫び申し上げます。
 (koko)


今一度お願いします。

 「現在のシートに↓を貼り付けて一度ダブルクリックしてから再度実行して下さい。」とは、

 Private Sub Worksheet_Change(ByVal Target As Range)
 Application.EnableEvents = False
 If Range("A1").Value = "更新" Then
 Range("G23").Value = Range("F23").Value + Range("G23").Value
 Range("G24").Value = Range("F24").Value + Range("G24").Value
 End If
 Application.EnableEvents = True
 End Sub

 の下に加えれば良いのですか?それとも消してから上書きしますか?
 また、ダブルクリツクはどの位置でするのですか?低次元な質問ですみません。
 もうひとつ教えて欲しいのですが、新たに作るとしたら、
 私が勝手にアレンジして作った上のコードは、どこを直したら良いのですか?
 お忙しい中、申し訳ありませんが、よろしくお願いします。

 (koko)はんはどうやらのっぴきならんご用に手ぇ取られてるみたいなんで...
 '------------------------------------- 
  Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    Application.EnableEvents = False
    If Range("A1").Value = "更新" Then
        If Target.Address = "$F$23" Then
            Range("G23").Value = Range("F23").Value + Range("G23").Value
        ElseIf Target.Address = "$F$24" Then
            Range("G24").Value = Range("F24").Value + Range("G24").Value
        End If
    End If
    Application.EnableEvents = True
 End Sub

 '-------------------------
 こういうことでっか?
     (弥太郎)


レスありがとうございます。
 弥太郎さま、サポートありがとうございます。
 これをコードの表示をしてコピーしたら、また累計計算されようになったんですけど、
 でも、前と同様、一度エクセルの表を閉じたら、
 次に開いて、数字を更新しても累計が計算されないんです。
 コードがちゃんと適用されていないのでしょうか?
 コードはコピーした後、何も保存作業せずに右上の×でいきなり閉じています。
 すごい初心者の質問ですみません。

 えっ?
 エクセルを閉じる際に保存してまっか?
 再度開いた時「マクロを有効にする」をクリックしてまっか?
    (弥太郎)

すみません。教えて下さい。
 エクセルはもちろん保存して閉じていますが、
 コードをコピーして入力した後、それはそのまま閉じてしまっていいのですか?
 一応、再度開いたエクセルのシートを右クリックして、
 コードを表示させたら、入力したコードはそのままあります。
 「マクロを有効にする」という作業はしていません。
 これはどこで設定するのですか?どこをクリックするのですか?
 エクセルを開くたびにこれをしなければならないのでしょうか?
 今一度教えて下さい。よろしくお願いします。

 マクロの有効無効の問い合わせダイアログが出てこんっちゅうこつは、
 多分セキュリティレベルが「高」に設定されとる筈ですワ。
 「ツール」「マクロ」「セキュリティレベル」を「中」に設定してみてくだはい。
 それを保存して一旦ブックを閉じ、再度開いて下さい。
 マクロの有効無効の問い合わせダイアログがでますさかい、有効を選択したら
 万事上手いこといきますわ。
    (弥太郎)

弥太郎さま ありがとうございました!(TT)
 解決しました!!マクロ初めて使うので…。やっとマクロ有効にできました!
 kokoさまもありがとうございました!
 お二人のおかげです。感謝感謝です!

 弥太郎さん、ありがとうございました。m(__)m
 (koko)


コメント返信:

[ 一覧(最新更新順) ]


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