業務であるリポートを管理しています。デイリーリポートなのでオートメーション化したいと考えています。やりたい事は以下です。
1つのファイル内に2つのシートがあります。
シート① 入電リポート
日付、入電内容、もしクレームだったら、クレーム列にクレームを入力
シート② 入電リポートの累計
日別に新しい列を作成しシート①の合計と累計をだしています。
日毎に摘出するデータ
・デイリー入電数
・これまでの入電数の累計
・デイリークレーム数
・これまでのクレーム数を累計
シート①を入力すると、オートでシート②で新しい列を作り、各日にちの統計データを計算し
表示させたいのです。
今は日付で結び付け、クレーム数は関数を使用してCOUNTをしています。毎回新しい日にちのデータをシート①に入力後、シート②で列を挿入、オートフィルでデータのアップデートをしています。
データをリンクできるのはネットで調べたのですが、少し意図が違うような気がしました。
オリジナルのプランでは、入力した日数をMSGウィンドウから入れて
loopでその日数まで列作成、データの反映。。。ですが、いまいちのような。
この部分をシート①入力でオート反映させる方法ありますか?
VBAに強い方、提案やアドバイスを頂ければ幸いです。
どうぞ宜しくお願いします!
No.2ベストアンサー
- 回答日時:
>シート①入力でオート反映させる方法ありますか?
一例です。
元データの配置が判らないので、
↓の画像のように元データはSheet1のA・B列に上から順に入力していくとします。
これを右側のような表にするようにしてみました。
↓のコードをSheet1のシートモジュールにしてください。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myRow As Long, myCol As Long
Dim c As Range, r As Range, wS As Worksheet
Set wS = Worksheets("Sheet2")
If Intersect(Target, Range("A:B")) Is Nothing Or Target.Count > 1 Then Exit Sub
With Target
If .Row > 1 And .Column <= 2 Then
If WorksheetFunction.CountA(Cells(.Row, "A").Resize(, 2)) = 2 Then
Set c = wS.Range("A:A").Find(what:=Cells(.Row, "B"), LookIn:=xlValues, lookat:=xlWhole)
If c Is Nothing Then
myRow = wS.Cells(Rows.Count, "A").End(xlUp).Row + 1
wS.Cells(myRow, "A") = Cells(.Row, "B")
Else
myRow = c.Row
End If
Set r = wS.Rows(1).Find(what:=DateValue(Cells(.Row, "A")), LookIn:=xlFormulas, lookat:=xlWhole)
If r Is Nothing Then
myCol = wS.Cells(1, Columns.Count).End(xlToLeft).Column + 1
wS.Cells(1, myCol).NumberFormatLocal = Cells(.Row, "A").NumberFormatLocal
wS.Cells(1, myCol) = Cells(.Row, "A")
Else
myCol = r.Column
End If
With wS.Cells(myRow, myCol)
.Value = .Value + 1
End With
End If
End If
End With
End Sub
※ コード内の「Sheet2」のシート名は実際のシート名にしてください。m(_ _)m
わかりやすく画像もつけて頂き、ありがとうごさいました!
Worksheet_Change(ByVal Target As Range)とIf Intersect(Target, Range("A:B")) Is Nothingがとても参考になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの日報作成について 3 2023/07/05 12:49
- Excel(エクセル) 複数セルデータを別シートの単一セルにコピーしたい。(詳細をご参照ください) 1 2022/12/14 15:08
- Excel(エクセル) Excelでのデータ管理 6 2022/12/24 09:33
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) Excel 表の作成について 3 2022/06/16 12:15
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Excel(エクセル) 別シートに毎回異なるデータをコピーする 7 2022/06/24 09:02
- Excel(エクセル) エクセルVBA VLOOKUPを使ってのカウント作業 2 2023/02/19 09:03
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelのVlookup関数の制限について
-
文字の色も参照 VLOOKUP
-
エクセルのブック分割マクロを...
-
VBAで繰り返しコピーしながら下...
-
エクセルの保護で、列の表示や...
-
エクセルの列の限界は255列以上...
-
エクセルで横並びの複数データ...
-
【VBA】複数のシートの指定した...
-
Excelで全てのシートに一気に列...
-
【条件付き書式】countifsで複...
-
エクセルのグラフのマクロでエ...
-
EXCEL 関数を教えてください。...
-
SUMPRODUCTにて別シートのデー...
-
エクセルVBA 行追加時に自...
-
エクセルでIPマッピング表を作る
-
エクセルVBAで、ある文字を含ん...
-
シートをまたぐ条件付き書式に...
-
【Excel】ある文字列からはじま...
-
ある数値に対して、値を返す数...
-
エクセルVBA データを別シート...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelのVlookup関数の制限について
-
文字の色も参照 VLOOKUP
-
オートフィルタ使用時にCOUNTIF...
-
エクセルの保護で、列の表示や...
-
VBAで繰り返しコピーしながら下...
-
エクセル関数に詳しい方、教え...
-
【条件付き書式】countifsで複...
-
Excel の複数シートの列幅を同...
-
エクセル マクロ 標準モジュー...
-
エクセルで横並びの複数データ...
-
エクセルの列の限界は255列以上...
-
Excelでの並べ替えを全シートま...
-
VLOOKアップ関数の結果の...
-
SUMPRODUCTにて別シートのデー...
-
エクセルで、チェックボックス...
-
Excel VBA ピボットテーブルに...
-
【エクセル】1列のデータを交...
-
エクセルVBAで、ある文字を含ん...
-
エクセルのブック分割マクロを...
-
excel 複数のシートの同じ場所...
おすすめ情報
”データをリンクできるのはネットで調べた。。”を含め、勉強、調査をしています。
教えてさんのサイトを活用し、知識のある人からの意見を聞くのも勉強の一部だと思い、ここで投稿したまでです。