日次で届く売り上げデータを集計した後、別シートの記入用フォーマットにコピーしたいのですが、「Sheet1」にあるデータを、「Sheet2」の対応する日付の欄に<値を貼付け>するVBAを教えていただけないでしょうか。
※画像の参照をお願いします。
例えば「Sheet1」にある6/6のデータ(B6:C25)を、マクロで「Sheet2」の6/6の欄に
<値を貼付け>したいです。
「Sheet1」には、1日分のデータ欄のみがあります。
「Sheet2」には、あらかじめ1年分の記入欄を用意しています。
集計をしない日もあるため、記入用フォーマット(Sheet2)の左端から詰めていくという方法は使えませんでした。
集計をしない日は空欄のままにしたいです。
それと欲を張ってすみませんが、以下の場合は動作を中止して、警告を出すようにしたいです。
・記入用フォーマットに、対応する日付が無かった場合
・記入用フォーマットの対応する日付の欄に、すでに何かが記入されている場合
説明が分かりづらかったらすみません。
よろしくお願いします。
No.4ベストアンサー
- 回答日時:
例外は無いとして以下の様なものでいかがでしょうか?
-------------------------------------------------------------
Sub 集計()
Dim 日付 As Date
Dim 列番号 As Long
日付 = Sheets("Sheet1").Cells(4, 3).Value
Sheets("Sheet2").Select
For 列番号 = 6 To Cells(4, Columns.Count).End(xlToLeft).Column Step 2
If Cells(4, 列番号).Value = 日付 Then Exit For
Next
If Cells(4, 列番号).Value <> 日付 Then
MsgBox ("対象の日付が見つかりませんでした。")
Exit Sub
End If
If Cells(Rows.Count, 列番号).End(xlUp).Row <> 5 Then
Cells(Cells(Rows.Count, 列番号).End(xlUp).Row, 列番号).Select
MsgBox ("データが既に書き込まれています。")
Exit Sub
End If
Sheets("Sheet1").Select
Range(Cells(6, 2), Cells(Cells(Rows.Count, 2).End(xlUp).Row, 3)).Copy
Sheets("Sheet2").Select
Cells(6, 列番号).Select
Selection.PasteSpecial _
Paste:=xlPasteValues, _
Operation:=xlNone, _
SkipBlanks:=False, _
Transpose:=False
Application.CutCopyMode = False
End Sub
-------------------------------------------------------------
No.7
- 回答日時:
No.6です。
>・記入用フォーマットに、対応する日付が無かった場合
>・記入用フォーマットの対応する日付の欄に、すでに何かが記入されている場合
を見逃していました。
前回のコードは消去し↓のコードにしてみてください。
そして、画像のアップを忘れていましたので、
一緒にアップします。
Sub Sample2()
Dim c As Range, lastRow As Long, wS As Worksheet
Set wS = Worksheets("Sheet2")
With Worksheets("Sheet1")
Set c = wS.Rows(4).Find(what:=Format(.Range("C4"), "m/d(aaa)"), LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
If wS.Cells(Rows.Count, c.Column).End(xlUp).Row = 4 Then
lastRow = .Cells(Rows.Count, "B").End(xlUp).Row
If lastRow > 5 Then
Range(.Cells(6, "B"), .Cells(lastRow, "C")).Copy
wS.Cells(Rows.Count, c.Column).End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End If
Else
MsgBox "入力済みです"
Exit Sub
End If
Else
MsgBox "該当する日付なし"
End If
End With
End Sub
※ 今回はSheet1のデータには手を付けていません。
どうも失礼しました。m(_ _)m
No.6
- 回答日時:
こんばんは!
横からお邪魔します。
Sheetのレイアウトは↓のような感じになっているとします。
Sheet1のC4セル日付は必ずSheet2の4行目にあるという前提で・・・
Sub Sample1()
Dim myCol As Long, lastRow As Long, wS As Worksheet
Set wS = Worksheets("Sheet2")
With Worksheets("Sheet1")
myCol = WorksheetFunction.Match(.Range("C4"), wS.Rows(4), False)
lastRow = .Cells(Rows.Count, "B").End(xlUp).Row
If lastRow > 5 Then
Range(.Cells(6, "B"), .Cells(lastRow, "C")).Copy
wS.Cells(Rows.Count, myCol).End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues
Range(.Cells(6, "B"), .Cells(lastRow, "C")).ClearContents '←Sheet1のデータを消去★//
End If
End With
End Sub
※ Sheet2へ「値」の貼り付けを行った後にSheet1のデータを消去するようにしています。
こんな感じではどうでしょうか?m(_ _)m
No.5
- 回答日時:
No.4 のコードはタイトル行の文字には影響されませんので、レイアウトが同じならばそのまま使えると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【Excel質問】別シートにある複数の同型の表から、同じ行項目にある数字を集計する 4 2023/02/16 00:14
- Excel(エクセル) Excel 売上管理シートに入力した売上データを、日報に自動反映させたいと考えています。 売上管理シ 3 2023/04/29 18:08
- Excel(エクセル) Excelで日報を自動で作成したい 売上管理シートに入力した売上データを、日報に自動反映させたいと考 1 2023/04/29 18:07
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Excel(エクセル) SUMIFSと日付変換 10 2023/04/16 15:38
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Visual Basic(VBA) 改行ごとに行を追加し、数量を分割 4 2023/07/11 16:39
- Visual Basic(VBA) VBAを使いシート間で貼り付け 3 2023/03/14 20:53
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) EXCEL マクロで 同じフォルダ内の複数ファイルの複数行全体を選択して1つのファイルに集約 4 2022/09/27 18:41
このQ&Aを見た人はこんなQ&Aも見ています
-
カンパ〜イ!←最初の1杯目、なに頼む?
飲み会で最初に頼む1杯、自由に頼むとしたら何を頼みますか? 最初はビールという縛りは無しにして、好きなものを飲むとしたら何を飲みたいですか。
-
あなたにとってのゴールデンタイムはいつですか?
一週間の中でもっともテンションが上がる「ゴールデンタイム」はいつですか? その逆で、一週間でもっとも落ち込むタイミングでも構いません。 よかったら教えて下さい!
-
これ何て呼びますか Part2
あなたのお住いの地域で、これ、何て呼びますか?
-
いけず言葉しりとり
はんなりと心にダメージを与える「いけず言葉」でしりとりをしましょう。 「あ」あら〜しゃれた服着てはりますな 遠くからでもわかりましたわ
-
お風呂の温度、何℃にしてますか?
みなさん、家のお風呂って何℃で入ってますか? ぬるめのお湯にゆったり…という方もいれば、熱いのが好き!という方もいるかと思います。 我が家は平均的(?)な42℃設定なのですが、みなさんのご家庭では何℃に設定していますか?
-
エクセルのVBAで日付を検索し転機したい
Visual Basic(VBA)
-
excel vbaで日付一致の行にデータ転記
Excel(エクセル)
-
VBA 別ブック(シート)の同一日付のデータ欄に値をコピー
Visual Basic(VBA)
-
-
4
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
5
VBA 日付一致で転記
Visual Basic(VBA)
-
6
今日の日付が入った行のデータを取得するマクロ
Excel(エクセル)
-
7
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
8
(VBAにて)日付でデータを抽出するやり方
Excel(エクセル)
-
9
Excelで日付変更ごとに、自動的にデータを転記
Excel(エクセル)
-
10
マクロで貼り付け位置を可変させる方法が知りたいです。
Excel(エクセル)
-
11
実行時エラー 438になった時の対処法を教えて下さい。
Visual Basic(VBA)
-
12
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
13
指定した日付の範囲内でデータを転記したい。
Excel(エクセル)
-
14
複数の条件に合う行番号を取得するには
その他(Microsoft Office)
-
15
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
16
Excelにて、ユーザーフォームで、日付けの範囲を指定し、検索しデーターを抽出し 別シートへ転記した
Excel(エクセル)
-
17
【VBA】元のシート内の文字列を別シートと比較し、一致したら元のシートの別のセルへ転記する方法。
Excel(エクセル)
-
18
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
19
指定したセルと同じ日付の入ったセルを選択するVBA
その他(Microsoft Office)
-
20
日付が未入力の際はゼロか、空白にしたい
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
日付型のフィールドに空白を入...
-
SQL文で パラメータが少なすぎ...
-
Excleピボットでデータのない部...
-
Accessの日付時刻型から日付、...
-
BCPでCSV内の文字列をテーブル...
-
VBA 別シートの同じ日付の欄に...
-
Excel→Accessへの日付データの...
-
SQLサーバにある日付型のデータ...
-
Accessのデータ型の日付/時刻型...
-
アクセス97のVBAで日付項目をヌ...
-
アクセスの昇順並び替えで空白...
-
Excel日付 0M/0D/YYYY
-
Access dcount 複数条件
-
Access クエリで、レコードの無...
-
「今日の日付を含む」と言う条...
-
【vba】日付の形式が勝手に変わ...
-
ACCESS 合計と最終日の列の内容...
-
ビュー定義をプログラムで動的...
-
Accessで直近のデータ
-
アクセス:既定値に土日含まず...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
日付型のフィールドに空白を入...
-
SQL文で パラメータが少なすぎ...
-
Excleピボットでデータのない部...
-
VBA 別シートの同じ日付の欄に...
-
アクセス:既定値に土日含まず...
-
Excel→Accessへの日付データの...
-
指定日付を起点にして最新日付...
-
【エクセル】指定した日付に一...
-
Accessの日付時刻型から日付、...
-
BCPでCSV内の文字列をテーブル...
-
アクセスで月単位の抽出
-
Access クエリで、レコードの無...
-
【Accessで困っています...
-
ACCESSの空白をカウントする
-
エクセル-過去6カ月分の合計を...
-
【vba】日付の形式が勝手に変わ...
-
Accessのデータ型の日付/時刻型...
-
アクセス97のVBAで日付項目をヌ...
-
アクセスの昇順並び替えで空白...
-
ビュー定義をプログラムで動的...
おすすめ情報
補足します。
■Sheet1の日付欄は、画像の通りC4になりますが、Sheet2の日付欄は画像とは違います。
例えば6/4(土)はED4、6/6(月)はEH4になります。
■コードは重複しません。ですが、実は「コード」と「売上」の代わりに「単価」と「個数」という表も存在していて、そちらにも応用できると嬉しいです。
■「コード」があって「売上」が空白、というパターンはないですが、ローデータの関係で「コード」があって「売上」が「0」になることはあります。
補足2
■Sheet1の表の左上はB4、Sheet2の表の左上はF4になります。
ちなみにSheet2のF4には、「4/1」と記入されています。
補足3
■「単価」と「個数」のシートですが、タイトル部分も「単価」「個数」になります。
また売上を計算したり、3列になることはありません。