[[20231206131216]] 『マクロ 項目別に別ファイルに分割後、更に違う項』(Wahaha) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロ 項目別に別ファイルに分割後、更に違う項目でシート分割』(Wahaha)

sheet1:注文表
sheet2:ケースマーク
上記内容のエクセルデータがあり、sheet1のB列のメーカー毎に別ブック(ファイル)へ転記したいです。その際にsheet2の内容そのままも一緒に転記したいです。

更に分割されたファイルをC列の納品日毎で更にシート分割したいです。

1.B列のメーカー別でファイル分割:sheet1(項目別ファイル) とsheet2(ケースマーク)

2.分割されたブックを納品日毎に“シート”分割へ

ネット検索で下記マクロコードを見つけ理想通りの分割となります。これにそのままsheet2も一緒に移動されるにはどうしたら、宜しいか教えて頂きたいです。
sheet1には注文詳細でsheet2はケースマークひな形

sheet1詳細↓

  A   B    C     D     E   F  
1    納品日 12/20
2    納品場所
3    住所、連絡先 
4
5 コード メーカー名 納品日 商品名 数量 金額
6 1123 A 12/20 すいか 10  5,000
7 1123 A 12/21 パイン 20  6,000
8 1123 B 12/20 パイン 30  9,000
9 1123 B 12/21 りんご 40  7,000

マクロ実行後⇒下記のようにsheet1にB列のメーカー毎にファイル作成される
    sheet2のケースマークひな形も一緒に移動して欲しい

  A   B    C     D     E   F  
1    納品日 12/20
2    納品場所
3    住所、連絡先 
4
5 コード メーカー名 納品日 商品名 数量 金額
6 1123 A 12/20 すいか 10  5,000
7 1123 A 12/21 パイン 20  6,000

  A   B    C     D     E   F  
1    納品日 12/20
2    納品場所
3    住所、連絡先 
4
5 コード メーカー名 納品日 商品名 数量 金額
6 1123 B 12/20 パイン 30  9,000
7 1123 B 12/21 りんご 40  7,000

ネットで見つけたコード↓

Sub 別ファイルへ出力()

Application.ScreenUpdating = False

ChDir ThisWorkbook.Path

基準列 = 2
開始行 = 9
最終行 = ActiveSheet.UsedRange.Cells(ActiveSheet.UsedRange.Count).Row

For i = 最終行 To 開始行 Step -1

ファイル名 = Cells(i, 基準列).Value & ".xlsx"

If Dir(ファイル名) = "" Then

ActiveSheet.Copy
ターゲット = Cells(i, 基準列).Value

For d = 最終行 To 開始行 Step -1
If Cells(d, 基準列).Value <> ターゲット Then Rows(d).Delete
Next d

ActiveWorkbook.SaveAs ファイル名
ActiveWorkbook.Close

End If

Next i

Application.ScreenUpdating = True

End Sub

  

2.
sheet1

  A   B    C     D     E   F  
1    納品日 12/20
2    納品場所
3    住所、連絡先 
4
5 コード メーカー名 納品日 商品名 数量 金額
6 1123 A 12/20 すいか 10  5,000

sheet2

  A   B    C     D     E   F  
1    納品日 12/20
2    納品場所
3    住所、連絡先 
4
5 コード メーカー名 納品日 商品名 数量 金額
6 1123 A 12/21 パイン 20  6,000

< 使用 Excel:unknown、使用 OS:Windows11 >


>その際にsheet2の内容そのままも一緒に転記したいです。
転記するのですか。それともシートコピーをするのですか?
【考え方】
転記する=罫線やセルの大きさなどはデフォルトのまま、セルの内容だけが転記される
シートコピーする=罫線やセル幅なども含めて同じものを作成する
上記の様に、転記とシートコピーでは、結果が異なります。

>ActiveSheet.Copy
この行は、Excelに対してどんな指示を出しているか理解していますか?
【ヒント】
これを複数のシートをコピーするように変更すればよいのです。

>更に分割されたファイルをC列の納品日毎で更にシート分割したいです。
これを手作業でやるとしたらどのような手順を踏みますか?

(匿名) 2023/12/12(火) 09:49:13


(匿名)様

ご確認頂きありがとうございます。
ご質問に対し1-3で記載させて頂きました。
お手数ですが、ご確認お願い致します。

1.
シートコピーしたいです=罫線やセル幅なども含めて同じものを作成する

2.
>ActiveSheet.Copy
アクティブシートとは現在アクティブであるワークシートのことを指します。 一度にアクティブにできるのは1つのシートだけです。ネットで調べました。

3.
>更に分割されたファイルをC列の納品日毎で更にシート分割したいです。
これを手作業でやるとしたらどのような手順を踏みますか?
>?@C列のシートコピーを行う ?A項目にフィルタを掛ける ?BC列のフィルタを選択し、チェックを入れ削除
(Wahaha) 2023/12/12(火) 18:56:30


>C列のシートコピーを行う
「C列(日付)の分だけシートコピーをする」で良いですか?
例)C6セル=12/11、C7セル12/11、C8セル=12/12の時、
  日付の分だけシートコピー(罫線などの情報もコピー)して、「1211」「1212」というシート名ができる

>A項目にフィルタを掛ける、BC列のフィルタを選択し、チェックを入れ削除
「上記のシートコピーでできた日付のシートは、シート名と同じ日付以外の行削除をする」
で良いですか?
(匿名) 2023/12/13(水) 11:48:04


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.