Excel VBA質問箱 IV

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

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


10884 / 76734 ←次へ | 前へ→

【71395】Re:実行日を取得するマクロとコピーした行挿入
発言  UO3  - 12/2/28(火) 14:49 -

引用なし
パスワード
   ▼どじょりん さん:

こんにちは

アップされたコードを踏まえようかとも思いましたが、全くの別方式で。
以下を前提にしています。

1.コマンドボタンは、台帳シートに配置された「ActiveXボタン」(コントロールツールボックスのボタン)
2.で、CommandButton1_Click は台帳シートのシートモジュールに書かれている。
3.台帳シートの1行目は、完全に空白セル。(ボタンのみ配置されていて、値が入っていない)

また、勝手に、処理後、D列の在庫数を引落し、その結果、在庫が0になったものを消しています。
(実際には、削除は行わず、在庫があるものだけで上書きしています)

Private Sub CommandButton1_Click()
  Dim wkCol As Long
  Dim x As Long
  Dim y As Long
  
  If WorksheetFunction.Count(Columns("A")) = 0 Then
      MsgBox "削除すべきデータがありません"
    Exit Sub
  End If

  Application.ScreenUpdating = False
  
  'まず空白以外を抽出
  wkCol = Range("A2").CurrentRegion.Columns.Count + 2 '作業列番号
  Cells(1, wkCol).Value = Range("A2").Value      '販売数タイトル
  Cells(2, wkCol).Value = "<>"            '抽出条件 空白以外
    
  Range("A2").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
    CriteriaRange:=Cells(1, wkCol).Resize(2), CopyToRange:=Cells(1, wkCol + 2), Unique:=False
  With Cells(1, wkCol + 2).CurrentRegion
    y = .Rows.Count - 1 '抽出データ行数
    x = .Columns.Count '一覧列数
  End With
  
  With Worksheets("削除一覧")
    .Rows(2).Resize(y).Insert
    .Range("A2").Resize(y, x).Value = Cells(2, wkCol + 2).Resize(y, x).Value
    .Range("A2").Resize(y).Value = Date
  End With
  
  '在庫引落
  y = Range("A" & Rows.Count).End(xlUp).Row
  Range("A3:A" & y).Copy
  Range("D3").PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _
                      SkipBlanks:=False, Transpose:=False

  Cells(1, wkCol + 2).CurrentRegion.Clear
  Cells(1, wkCol).Value = Range("D2").Value      '在庫数タイトル
  Cells(2, wkCol).Value = ">0"            '抽出条件 在庫 0
  
  Range("A2").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
    CriteriaRange:=Cells(1, wkCol).Resize(2), CopyToRange:=Cells(1, wkCol + 2), Unique:=False
    
  'リスト置換え
  With Range("A2").CurrentRegion
    .Value = Cells(1, wkCol + 2).Resize(.Rows.Count, .Columns.Count).Value
  End With
  
  Cells(1, wkCol).CurrentRegion.Clear
  Cells(1, wkCol + 2).CurrentRegion.Clear
  
  Application.ScreenUpdating = True
  
  MsgBox "処理が終わりました"
  
End Sub

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 回答

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