Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


10897 / 76734 ←次へ | 前へ→

【71380】実行日を取得するマクロとコピーした行挿入
質問  どじょりん  - 12/2/28(火) 5:40 -

引用なし
パスワード
   マクロを実行した日を入力するマクロが実行できなくて困っています。  


シート1(台帳)に以下のような帳票があります。


    A列   B列    C列     D列


2  販売数  販売先   品 名    在庫数
  --------------------------------------------
3   1    A社     AAA     10
  --------------------------------------------
4              BBB      8
  --------------------------------------------
5   2    B社    CCC     7 
  --------------------------------------------

以下 続く

1行目にはコマンドボタンがあります。
ボタンでこの表の販売数に数を入力した行をシート1から削除します。
が、念のためシート2(削除一覧)にマクロ実行日とともに残そうと思っています。

シート2はこんな感じです。


    A列     B列    C列     D列

1  販売日    販売先   品 名    販売数
  -------------------------------------------------
2 マクロ実行日   A社   AAA     1
  -------------------------------------------------
3 マクロ実行日   B社   CCC     2
  -------------------------------------------------

これより下は過去の削除データが記録されている。


考えたマクロは以下のとおりです。

Private Sub CommandButton1_Click()

Dim Choice As Integer
Dim Msg1 As String
Dim Msg2 As String
Dim Msg3 As String
Dim i As Long
Dim j As Long

Msg1 = "販売数に入力された数が台帳より削減されます。"
Msg2 = "数量がゼロになった物品は行ごと削除されます。"
Msg3 = "処理を続けますか?"


Choice = MsgBox((Msg1 & vbCrLf & Msg2 & vbCrLf & "" & vbCrLf & Msg3), vbYesNo + vbExclamation, ("注意"))
Select Case Choice
Case vbYes
 
  With Sheets("台帳")
  .Select
  On Error Resume Next
  Range("A3:A65536").SpecialCells(xlCellTypeConstants).EntireRow.Copy
  End With
  
  With Sheets("削除一覧")
  .Range("2:2").Insert
  .Columns("A:D").EntireColumn.AutoFit
  
  End With

  For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
   Sheets("削除一覧").Cells(i, 4) = Sheets("削除一覧").Cells(i, 1)
   Sheets("削除一覧").Cells(i, 1) = Format(Now(),"yyyy/mm/dd)
   Next


  With Sheets("台帳")
  .Select


 For i = 3 To Cells(Rows.Count, 1).End(xlUp).Row
 Cells(i, 4) = Cells(i, 4) - Cells(i, 1)
 Next

 For i = 3 To Cells(Rows.Count, 1).End(xlUp).Row
 Range(Cells(i, 1), Cells(i, 2)).ClearContents
 Next

 For j = Cells(Rows.Count, 3).End(xlUp).Row To 3 Step -1
 If Cells(j, 4).Value = 0 Then Cells(j, 4).EntireRow.Delete
 Next
 
 End With

Case vbNo
Sheets("台帳").Select


End Select
End Sub


このマクロの
「Sheets("削除一覧").Cells(i, 1) = Format(Now(),"yyyy/mm/dd)」
の部分が上手くできず止まってしまいます。
よろしくお願いします。

あわせて、A列に何も入力しない状況でボタンをおすと、
シート2に空白行が挿入されてしまいます。
こうならない方法もあわせて教えてください。

 

2 hits

【71380】実行日を取得するマクロとコピーした行挿入 どじょりん 12/2/28(火) 5:40 質問
【71381】Re:実行日を取得するマクロとコピーした行... ichinose 12/2/28(火) 8:05 発言
【71386】Re:実行日を取得するマクロとコピーした行... UO3 12/2/28(火) 12:36 発言
【71387】Re:実行日を取得するマクロとコピーした行... UO3 12/2/28(火) 12:40 発言
【71390】Re:実行日を取得するマクロとコピーした行... UO3 12/2/28(火) 13:00 発言
【71391】Re:実行日を取得するマクロとコピーした行... UO3 12/2/28(火) 13:06 発言
【71395】Re:実行日を取得するマクロとコピーした行... UO3 12/2/28(火) 14:49 発言
【71401】Re:実行日を取得するマクロとコピーした行... どじょりん 12/2/29(水) 0:50 お礼
【71428】Re:実行日を取得するマクロとコピーした行... どじょりん 12/3/1(木) 18:46 質問
【71431】Re:実行日を取得するマクロとコピーした行... UO3 12/3/1(木) 22:27 回答
【71432】Re:実行日を取得するマクロとコピーした行... UO3 12/3/1(木) 22:32 発言
【71474】Re:実行日を取得するマクロとコピーした行... どじょりん 12/3/9(金) 4:59 質問
【71477】Re:実行日を取得するマクロとコピーした行... UO3 12/3/9(金) 13:46 回答

10897 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free