[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロ 項目別に別ファイルに分割後、更に違う項目でシート分割』(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 >
>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
>A項目にフィルタを掛ける、BC列のフィルタを選択し、チェックを入れ削除
「上記のシートコピーでできた日付のシートは、シート名と同じ日付以外の行削除をする」
で良いですか?
(匿名) 2023/12/13(水) 11:48:04
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.