プロが教える店舗&オフィスのセキュリティ対策術

エクセル 日報売上を月報に展開するマクロで困っております。

準備するシート
(1)日報入力シート
(2)月報売上シート

日報入力シートに作ったボタンを押すとB3の日付(今日)と月報売上シートA列の2~31に用意された日付(1ヶ月分)を参照する

一致した場所(B列~D列)に 入力シート B7:D7のデータを貼り付ける作業を考えております。

以下は過去の事例を参考にさせて頂きました。日付が横軸ですが、目的は縦軸です。

日報入力は1回のみですので、重複はなく1行ずらす処理は必要ありません。

ご教示頂けば助かります。
よろしくお願い致します。

Sub ボタン1_Click()
Dim FRng As Range
Dim Rw As Long
With Sheets("月報売上シート")
If Range("B3").Value = "" Then
MsgBox "入力日を記入してください。", vbExclamation
Exit Sub
End If

Set FRng = .Rows(1).Find(Range("B3").Value, lookat:=xlWhole)
If Not FRng Is Nothing Then
Rw = .Cells(Rows.Count, FRng.Column).End(xlUp).Row
If Rw < 3 Then Rw = 3 Else Rw = Rw + 1
.Cells(Rw, FRng.Column).Resize(, 3).Value = Range("B7:D7").Value
Else
MsgBox "転記先日付が 見つかりません。", vbCritical
Exit Sub
End If
End With
Set FRng = Nothing
MsgBox "転記しました。", vbInformation, "完了"
End Sub

「エクセル 日報売上を月報に展開するマクロ」の質問画像

質問者からの補足コメント

  • 早速にご返答ありがとうございました。

    月報売上シートのカレンダーはマクロでするのではなく、

    関数を利用し、任意のセルに年と月を入力すると、
    A列に日付(標準の数値)
    B列に曜日(関数式)

    が入る万年カレンダーを作成しようと考えております。

    よってA列の数値を参照させたいと思います。

    その場合の変更はどのようになりますでしょうか?

    お手数おかけしますがよろしくお願い致します。

      補足日時:2015/11/21 10:28

A 回答 (1件)

Private Sub Sample()


  Dim lngMaxRow As Long
  Dim NippoWs As Worksheet
  Dim GeppoWs As Worksheet
  Dim rng As Range
  Dim lngRow As Long
  Dim lngCol As Long

  Set NippoWs = Workbooks(ThisWorkbook.Name).Sheets("日報入力")
  Set GeppoWs = Workbooks(ThisWorkbook.Name).Sheets("月報売上")

  lngMaxRow = GeppoWs.Cells(Rows.Count, 1).End(xlUp).Row

  Set rng = GeppoWs.Range("A:A").Find(NippoWs.Cells(3, 2))

  If NippoWs.Cells(3, 2) = "" Then
    MsgBox "日付が入力されていません"
    Exit Sub
  ElseIf rng Is Nothing Then
    MsgBox "日付がありません"
    Exit Sub
  End If

  lngRow = 0
  For lngRow = 1 To lngMaxRow Step 1
    If NippoWs.Cells(3, 2) = GeppoWs.Cells(lngRow, 1) Then
      GeppoWs.Cells(lngRow, 2) = NippoWs.Cells(6, 2)
      GeppoWs.Cells(lngRow, 3) = NippoWs.Cells(6, 3)
      GeppoWs.Cells(lngRow, 4) = NippoWs.Cells(6, 4)
    End If
  Next
End Sub

こんな感じでどうでしょうか?
    • good
    • 0
この回答へのお礼

早速にありがとうございます。
思った通りになりました。
勉強致します。

お礼日時:2015/11/24 06:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています