前提・実現したいこと
クライアントごと人毎に実績時間の集計を行っております
sheet(仕様書)に条件、人、時間を入力し、別のsheet(当期)に比較表を作成しようしております
ボタンをクリックしたら入力しているセルの範囲をsheet(当期)の対象期間に追加するようにしたいです
条件①:役割(リーダー等) ⇒ A列区分、B列コード
条件②:氏名 ⇒ D列氏名、E列コード
条件③:決算期:H21
対象期間 ⇒ H23
入力しているセルの範囲 ⇒ 開始列H25、終了列H26
※ピンク色のセルは手入力箇所です
例:対象期間「1Q」のセル範囲「K22:S28」をsheet当期のA23に貼り付ける。
対象期間「2Q」のセル範囲「K22:N28」を元にsheet当期のA列~D列に人を追加する。
(区分コード昇順、氏名コード昇順)
セル範囲「O22:S28」をsheet当期21行目が「2Q」の場所に追加する。
発生している問題・エラーメッセージ
仕様書に入力した条件をもとにsheet(当期)に人毎に比較表を作成できず困っております。
・昇順第1位は区分コード、第2は氏名コードとし、入力しているセルの範囲を最終行まで決算期の箇所にコピーします。
・必ずしも全員でないこと、入力しているセルの範囲に空白があること、決算期によってメンバー(氏名)が異なる場合があることが最大のネックとなっております。
ご教授お願いできますでしょうか。
↓は決算期が1Qの場合を作成してみましたが最終行までにするにはどうしたらいいかわからず途中までとなっております。
手動の場合の動き(イメージ)
(1)sheet仕様書に条件①~③を入力する
(2)sheet仕様書に集計(人毎時間)を入力する
(3)対象期間が「1Q」の場合
①sheet仕様書のセル範囲「K列からS列」までをコピーする
②sheet当期時間のA23に貼り付ける
(4)対象期間が「2Q」の場合
①sheet仕様書の「K列からM列」とsheet当期時間が同じか調べる
②①が同じ場合はsheet仕様書の「O列からS列」をsheet当期時間「J列からN列」に貼り付ける
③①が違う場合はsheet当期時間に行を挿入し、sheet仕様書の「K列からN列」をsheet当期時間「A列からD列」に貼り付ける
同じ行にsheet仕様書の「O列からS列」を貼り付ける
該当のソースコード
Sub Macro1() Dim ws1 As Worksheet Dim ws2 As Worksheet Set ws1 = Worksheets("仕様書") Set ws2 = Worksheets("当期") r = ws1.Cells(Rows.Count, "K").End(xlUp).Row If ws1.Range("H23").Value = "1Q" Then 'ws1.Range(.Cells(22, .Range("H25").Value), _ '.Cells(r, .Range("H26").Value)).Copy 'ws1.Range("K22:S28").Copy ws2.Range("A16").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False 'Else If 'ws1.Range End If End Sub