【ExcelVBA】顧客別に抽出データをシート転記
現在、顧客毎の支払い明細をExcelで自動発行できるものを作っています。
独学で、以下の状態までは作成できたのですが、その後、どうすれば良いのか分かりません。
[入力シート] ※以下、項目名はA6:O6に記載。
A=No. F=科目名 K=該当期間
B=顧客ID G=業者名 L=本体金額
C=顧客名 H=摘要【抜粋】 M=消費税
D=大項目 I=摘要 N=合計
E=勘定科目 J=説明 O=計上月
上記[入力シート]内の「C=顧客名×O=計上月」を抽出条件としたフィルタオプションで転記
というコードは、下記で成功しました。
※コード内の「顧客テーブル=入力シートの全データ」。「Q_抽出条件=顧客名×計上月」の条件
----------------------------------
Sub 必要なフィールドのみを転記()
Dim myTable As Range, myQuery As Range, taegetRnage As Range
Set myTable = Worksheets("入力Form").Range("顧客テーブル")
Set myQuery = Worksheets("入力Form").Range("Q_抽出条件")
Set targetRange = Worksheets("必要項目のみ転記").Range("b3:l3")
myTable.AdvancedFilter xlFilterCopy, myQuery, targetRange
End Sub
----------------------------------
また、顧客名毎にシート作成し、転記ということも以下コードで成功しています。
※コード内の「myList = Array("顧客A","顧客B","顧客C"・・・・・・・・・・)」は、顧客数分、名前を記載してあります。
----------------------------------
Sub 物件毎に転記()
Dim myTable As Range, mysheet As Worksheet, i As Integer
Dim myList()
myList = Array("顧客A","顧客B","顧客C"・・・・・・・・・・)
Set myTable = Worksheets("入力Form").Range("顧客テーブル")
For i = o To UBound(myList)
Set mysheet = Worksheets.Add(after:=Sheets(Sheets.Count))
mysheet.Name = myList(i) & "_支払明細"
With myTable
.AutoFilter 3, myList(i)
.Copy mysheet.Range("a2")
.AutoFilter
End With
mysheet.Range("a2").CurrentRegion.EntireColumn.AutoFit
Next
End Sub
----------------------------------
まず、顧客数分の抽出先(転記先)明細シートを用意し、必要な項目名だけを
記載しておくので、そこに「顧客名」×「計上月」の抽出条件で抽出された内容を
顧客別に指定シートに、転記したいのです。
※「顧客名」で転記先シートを予め指定できるのであれば、抽出条件は「計上月」だけで構いません。
顧客数が30件程あり、毎月、入力シートに売上データは追記されていきます。
その蓄積されていくデータの中から、一括で「(1)計上月指定 (2)顧客名別の指定シートに該当データのみを転記 (3)顧客名に該当する転記先シートがなければ、新しくシートを作成した上で転記」
という作業を行いたいと考えています。
※(3)は、Want条件なのでなくても大丈夫です。
あまりVBAの知識がない為、コードの記載方法など詳細に教えていただければ幸いです。
何卒よろしくお願い致します。
補足
質問が下手ですいません。 補足すると、注文受付シートには、顧客名がずらっと並びます。その中から同じ顧客名を別シートの顧客名欄にカウントしたいのです。 顧客名は、450件ぐらいあります。 どうでしょうか。